IA32中的寄存器们

Posted on 2009-09-26 17:33  蹦跶  阅读(484)  评论(0)    收藏  举报
IA32中寄存器:
把16位的通用寄存器、标志寄存器以及指令指针寄存器扩充为32位的寄存器
段寄存器仍然为16位。
增加4个32位的控制寄存器
增加4个系统地址寄存器
增加8个调式寄存器
增加2个测试寄存器

通用寄存器: omitted
段寄存器:
因为是16位的,不能存放32位的段基址,所以存的是段选择符,而基址则存在段描述符表中。
状态和控制寄存器:
EFLAGS  --- 标志寄存器   主要关注其中的TF  IOPL  IF (sti cli) DF NT VM
EIP        ---指令指针       存放下一条将要执行指令的偏移量(相对于cs)EIP中的低16位叫指令指针IP寄存器,用于16位寻址 
CR0      ---机器状态字     CR0中包含了6个预定义标志,0位是保护允许位PE(Protedted Enable),如果PE位置1,则保护模式启动,如果PE=0,则在实模式下运行  。CR0的第31位是分页允许位(Paging Enable),它表示芯片
上的分页部件是否允许工作
CR1      ---Intel保留
CR2      ---页故障地址    保存最后一次出现页故障的全32位线性地址
CR3      ---页目录地址   保存页目录表的物理地址,页目录表总是放在以4K字节为单位的存储器边界上,因此,它的地址的低12位总为0
系统地址寄存器:
 IA32有4个系统地址寄存器: GDTR (32+16 = 48 bits)  IDTR(32bits + 16bits) TR(16bits) LDTR(16bits)
这几个寄存器相当重要。
调试寄存器和测试寄存器

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3