控制寄存器有三个。
1.指令指针控制寄存器IP,instruction pointer,用来装载程序指令的地址,和cs结合起来可以准确地指向下一条指令要执行的地址,在16位CPU中寻址在64kb内,在32位CPU中可以寻址4gb。
2.程序状态字寄存器PSW,program status word,记录一条指令执行后程序所处的状态,也是有着16位和32位之分,示意图自己百度。
cf,carry flag,进位或者借位标志位,操作结果有进位或者借位时影响。
pf,parity flag,奇偶检验标志位。
af,auxiliary carry flag,辅助进位标志位。
zf,zero flag,零标志位,运算结果为0此位为1。
sf,sign flag,符号标志位,运算结果为负数此位为1。
tf,trap flag,陷阱标志位,单步执行标志位,为1时每执行一条指令都要中断一次。
if,interrupt flag,中断标准允许位,为1允许外部发生中断。
df,direction flag,方向标志位,主要与字符串指令有关。
of,overflow flag,溢出标志位。
iopl,IOprivilege level,IO操作的特权标志位。
nt,nested task flag,嵌套标志位。
rf,resatart flag,重启动标志位,与调试有关。
wm,virtual mode,虚拟8086标志位。
3.控制寄存器cr,control register,主要控制CPU工作方式。
cr0,位0,位31分别控制CPU是否采用保护方式分段机制和分页机制。
cr1,Intel公司保留。
cr2,保存发生页故障异常的线性地址。
cr3,低12位始终为0,高20位内容组成页目录表的起始物理地址。