cost 101 ms
.code16和.code32有什么區別

[英]What's the difference between .code16 and .code32

我正在通過觀看一些視頻來學習對 i386 的系統核心進行編程。 我知道一些關於進入保護模式的程序: 在.code16文件中,首先我需要打開A20 Address Line並更改CR0寄存器,然后我需要將ljmp轉換為.code32代碼。 現在我正在研究.code16機器碼和.code32機器碼之間的 ...

進入保護模式后無法理解遠跳的問題

[英]problem undrestanding far jump after entering protected mode

在我的引導加載程序匯編代碼中有一個部分,我們通過加載 gdt 並啟用控制寄存器位將 cpu 切換到保護模式這是引導加載程序代碼的一部分:init_pm: ... cli lgdt [GDT_descriptor] mov eax, cr0 or eax, 1 ...

在 32 位保護模式下使用變量偏移文本

[英]Use variable to offset text in 32-bit protected mode

我正在嘗試為我的 32 位操作系統制作自定義光標,並且想知道如何通過變量(0xb8000+XVAR)偏移內存地址(文本為 0xb800)。 我嘗試了以下操作,但文本剛剛從我的屏幕上消失了: 對於任何需要知道的人來說,這就是它的樣子而不試圖抵消: 這就是我嘗試抵消時的樣子: 最好的問候,馬克安 ...

可執行堆棧如何在 x86 保護模式下工作?

[英]How did executable stacks work in x86 protected mode?

AMD64 開發人員手冊第 2 卷(系統編程)的第 4.7.2 節描述了傳統模式中的代碼段描述符: 代碼段建立處理器操作模式和執行權限級別。 這些段通常只包含指令並且是只執行的,或者是執行和只讀的。 軟件不能寫入其選擇器引用代碼段描述符的段。 如果代碼段是唯一的可執行段,並且無法寫入,那 ...

如果我們在內存地址末尾請求多字節數據會發生什么?

[英]What happens if we request multibyte data at the end of memory address?

我正在學習匯編語言,對此有疑問。 我在實模式下有一個引導加載程序,我們可以在其中訪問高達 1 mb 的內存。 如果我們在 1 mb 空間的結束位置請求 2 字節數據會發生什么,它會只返回一個字節還是引發一些異常? 當我們處於保護模式(啟用和禁用分頁)時,我有類似的問題。 另一個問題是當程序試圖訪問比 ...

在保護模式下如何更改第一兆字節 memory 布局?

[英]How will first megabyte memory layout be changed in Protected Mode?

據我了解,當我們處於 x86 實模式時,第一兆字節 memory 布局如下所示: 一旦我們跳轉到保護模式,memory 布局會改變嗎? 我知道我們可以通過與實模式相同的地址訪問視頻 memory,但其他地區呢? 我們可以覆蓋它們嗎? 我想我們不再需要 IVT 和引導扇區了。 但我不確定其他人。 ...

進入 32 位保護模式無法按預期工作

[英]Entering 32-bit protected mode does not work as intended

所以最近,我決定為我的基本操作系統 kernel 嘗試使用 32 位代碼而不是 16 位代碼。 我嘗試進入 32 位保護模式,但它似乎無法正常工作。 我使用 NASM 進行構建,使用 qemu 進行調試,但是當我調試它時,qemu window 開始出現很多故障。 而且它每半秒就會不斷出現故障。 這 ...

使用 nasm 和 qemu 運行引導加載程序的問題

[英]problem running a bootloader using nasm and qemu

我有一個匯編語言代碼,我在其中切換到保護模式,然后在屏幕上打印“Hello World”。 我已將此代碼保存在名為 boot2.asm 的文件中。 我需要幫助來運行和測試代碼,因為我無法通過原始編碼器自己給出的命令來做到這一點。 我使用的命令是: 我應該在 cmd 中運行這個命令,對吧? 我的電腦上 ...

32 位程序集引導加載程序適用於 VM/qemu,但不適用於真正的 PC

[英]32-bit assembly bootloader works in VM/qemu but not on a real PC

我編寫了這個小型引導加載程序,它以 32 位保護模式將單個字符打印到屏幕上: 這段代碼在虛擬機上運行良好,但它會導致幾個屏幕閃爍並在真機上重新啟動(我已經在兩台 PC 上測試過)。 更改幾行(刪除“bits 32”、“or eax, 0x1”,並將“jmp code_seg:main”替換為“j ...

程序集 32 位保護模式,label 未指向定義的字符串?

[英]Assembly 32 bit-Protected Mode, label not pointing to defined string?

我正在嘗試學習一些 x86 程序集。 我已經成功地創建了一個帶有引導加載程序的 MBR,加載了另一個扇區,切換到保護模式並跳轉到加載的扇區。 使用環境我在 64 位 Windows 安裝上使用 NASM,並使用nasm -s -f bin bootloader.asm -o test.img 。 ...

如何為 DOS 創建微型 32 位 (i386) 可執行文件?

[英]How to create tiny 32-bit (i386) executables for DOS?

我想為 DOS 創建微型 32 位 (i386) 可執行文件。 作為參考,這里是我用於 DOS 的微型 16 位 (8086) 可執行文件的 NASM 匯編源代碼: 因為我想在我的 32 位 DOS 可執行文件中使用超過 1 MiB 的 memory,所以我很可能需要一個DOS 擴展程序。 在查看 ...

如何在保護模式下切換到 320x200 256 色且沒有 bios 中斷

[英]How to switch to 320x200 256colors in protected mode and with no bios interrupts

我放棄了實模式 kernel 因為我總是將 R_386_16 截斷以適應並制作新的 kernel。 新的 kernel 在保護模式下運行,並從 grub 引導。 我正在嘗試創建一個具有可調節 fonts 的自定義文本渲染引擎,但我堅持將視頻模式從 80x25 更改為 320x200,顯然最麻煩的方法 ...

MASM 在保護模式下生成錯誤的調用目標

[英]MASM generating wrong call target in protected mode

在保護模式下,調用位於比當前 function 地址低的 memory 地址的函數時遇到異常。 異常會因代碼配置而異,有時是一般保護錯誤,有時是無效的操作碼等。 這是在硬件上產生一般保護故障和在 DOSBox 中產生雙重故障的程序的源代碼。 相關代碼在段seg32中。 故障發生在func1中,當它嘗 ...

從 DOS 程序進入保護模式

[英]Entering protected mode from a DOS program

我想我已經閱讀了十幾個基本上與這個問題重復的問題,但我仍然沒有找到解決方案。 期望的結果是進入保護模式並在沒有故障的情況下停止。 我遇到的問題是在使用 6 字節立即值執行段間jmp后出現三重錯誤。 這是我在 DOSBox 和運行 MS-DOS 7 的 Pentium II PC 中產生錯誤的代碼。匯 ...

通過 BHO 運行應用程序時禁用 Internet Explorer 提示“程序將在保護模式之外打開”

[英]Disable Internet Explorer prompt 'the program will open outside of protected mode' when running application through BHO

我已經編寫了一個 BHO,它將在 BHO 實例化后立即啟動一個控制台應用程序。 控制台應用程序是在 C# 中開發的簡單輔助應用程序,放置在本地磁盤 C 中。 當我在我的開發機器上部署 BHO 時,它運行良好,但是當部署在非開發機器上時,Internet Explorer 會彈出以下彈出窗口 我只想 ...

Webdriver 禁用增強保護模式

[英]Webdriver disable enhanced protected mode

我在 IE11 上使用 webdriver。 每個 selenium 有一組在 IE11 中運行所需的設置,其中之一是在 Internet 選項 > 高級 > 安全中禁用“增強保護模式”(與 Internet 選項 > 安全中啟用的保護模式不同) 問題是,我的組策略禁用了這些字段 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM