我剛寫完review for a program that displays the results from QuerySystemAddressMap。
我留下了2個問題:由4GB +內存E820h QuerySystemAddressMap返回的值
看到那些 - 對於大多數不必要的大 - 32位參數
ECX
,EBX
,尤其是在EAX
功能號,我懷疑有可能存在一個保護模式此BIOS功能對應。我懷疑是否正確?當the BIOS function 0000E820h在計算機上運行從實地址模式比4GB內存以及瞭解4GB關口上方內存不會被尋址,將地址和長度所報告保持低於4GB的?
通常情況下,我只想試試這個,看看我自己,但我沒有這種硬件(還)。
您沒有超過4 GB內存的硬件?因爲每個系統,甚至是全新系統,都以實模式啓動,因此很容易測試。據我所知,ROM BIOS中斷* no *可以從保護模式訪問。 [此參考資料](http://www.uruk.org/orig-grub/mem64mb.html)表明E820h也僅限於實模式。我認爲這只是歷史,爲什麼它使用32位寄存器:它是爲Compaq SystemPro引入的,它是第一個需要它的系統,而且它使用了386處理器。爲什麼*不使用全部寄存器? –
@CodyGray我在某種程度上假設可能有類似於VESA視頻BIOS中的* ProtectedModeEntryPoint *。至於「爲什麼不使用全部寄存器」,所有這些操作數大小前綴和32位立即數在實地址模式中佔用大量字節。 –