80x86中選擇子問題

2022-03-31 07:13:12 字數 397 閱讀 6708

最近在看《自己動手編寫作業系統》一書。發現用如下**初始化描述符:

code

xoreax, eax

movax, cs

shleax, 

4addeax, label_seg_code32

movword [label_desc_code32 + 

2], ax

shreax, 

16movbyte [label_desc_code32 + 

4], al

movbyte [label_desc_code32 + 

7], ah

但是選擇子的結構的低3位確有別的用處。一直疑惑為什麼低3位設定值不影響選擇子中偏移值。後來回想段描述符占用8位元組也就是說對於段描述符的偏移來說低3位一直為0. 

80X86定址方式

1 與定址相關的暫存器 8086 暫存器 段暫存器cs ds es ss 基址暫存器bx bp 變址暫存器di si 專用暫存器ip sp 具體每個暫存器的作用就不仔細介紹了。80386 及其以上的暫存器 段暫存器cs ds es ss fs,gs 基址暫存器eax ebx ecx edx ebp ...

80x86中斷向量

80x86中斷向量 i o addr int type function 00 03 0除法溢位中斷 04 07 1單步 用於debug 08 0b 2非遮蔽中斷 nmi 0c 0f 3斷點中斷 用於debug 10 13 4溢位中斷 14 17 5列印螢幕 18 1f 6,7保留 8259中斷向量...

80X86 保護模式

保護模式定義 保護 用硬體對每個任務使用的記憶體空間進行保護,阻 止其他任務的非法訪問。特點如下 a 採用虛擬儲存管理,啟用分段和分頁機制。允許關閉分頁機制 b 段內偏移位址 32位,每個段最大232 b 4gb 每個程式最多可以使用 16k個段,理論上的虛擬位址空間為 4gb 16k 64tb c...