Win32匯編基礎知識03, 關於GDTR的問題
本帖最后由 kikiatw 于 2019-10-18 09:23 编辑我剛剛看了小甲魚的這份教學, 最後甲魚哥用圖解的方式說明如何尋求GDTR與LDTR
那麼在這個過程中, GDTR的48bit裡面(感謝人造人更正)
bit 48:16 共32bit放的是GDTR在記憶體中的偏移
bit 15:0 共16bit放的是GDTR的SIZE,
問題一: 所以可以理解GDTR這個表最大是64Kbyte?
那麼一個段最大還是16bit. 只有高位的13個bit是指向GDTR的偏移,
問題二: 段寄存器址有13個bit作GDTR的偏移, 可是GDTR有64kbyte, 後面一點的不就索引不到了??
以上兩個問題求解, 謝謝.
我正在看保护模式,后面再来回答你的问题。推荐你看大陆人写的这本书《x86汇编语言-从实模式到保护模式》,里面保护模式讲的比较清楚,有完整代码可以调试。 哈哈, 這不是正在學小甲魚的彙編32教程嗎, 我先翻翻課本看看啊 gdtr是48位的
0~15 全局描述符表边界
16~47 全局描述符表线性基地址 本帖最后由 kikiatw 于 2019-10-18 09:24 编辑
關於這個問題,我剛剛忽然有了領悟,16bit size, 但是每個GDT的內容是64bit, 所以,只需要2^10就可以索引到64k的size,所以是夠用的 https://s2.ax1x.com/2019/10/18/KV2Iij.jpg 原來是BYTE
64KB = 8092個描述符 (8082*64bit = 64Kbyte)
所以剛好 2^13 就是 8192 個
SB兄最近看匯編也看得很勤勞啊~~ 感謝幫忙答覆!!
页:
[1]