8086/8088CPU内部控制寄存器

控制存器有IP和FLAGS
FLAGS称为标志寄存器或程序状态寄存器(PSW),虽然有16位,但是只使用其中9位(标志寄存器中的空位有什么作用吗),其中包括6个状态标志位和3个控制标志

6个状态标记位

状态标记符记录了算术逻辑运算的结果特征,如溢出、进位等

CF(Carry flag) 进位标志位
PF(Parity flag) 奇偶标志位
AF(Auxiliary carry flag) 辅助进位标志位
ZF(Zero flag) 零标志位
SF(Sign flag) 符号标志位
OF (Overflow flag) 溢出标志位

CF:当最高位向前有借位或进位时CF=1,否则为 0;
该标志位可用于多字(字节)数的加减运算。
PF:运算结果的低8位中1中个数为偶数个时PF=1,否则为 0
AF:运算时D3向D4位有进位或借位时AF=1,否则为 0
ZF:运算结果为0时ZF=1,否则为 0
判断运算结果是否为0时,可使用此标志位。
SF:运算结果最高位为1时SF=1,否则为 0
OF:运算结果超出了带符号数的范围,即溢出时OF=1,否则为 0
注意区别OF和CF,OF只是对有符号数运算而言,CF是对无符号数运算有意义的标志位,而OF是对有符号数运算有意义的标志位。

3个控制标志位

控制标志符用于设置控制条件,控制CPU操作,使用专门指令才能改变。

TF 陷阱标志位
IF 中断允许标志位
DF 方向标志位

TF:TF=1时,处理器处于调试特性,CPU处於单步执行指令的工作方式。每执行一条指令后产生一次单步中断。
IF:F=1时,使CPU可响应CPU外部的可屏蔽的中断请求;IF=0使CPU禁止响应CPU外部的可屏蔽状态中断请求。
DF:在执行串操作指令时控制操作方向,DF=1时,按减地址方向进行,即从高地址向低地址操作;DF=0时,反之。

参考资料:
http://netclass.csu.edu.cn/NCourse/hep094/homepage/flags2.htm(各种标志位的含义)
http://www.cppblog.com/luqingfei/archive/2010/08/04/122171.aspx(标志寄存器)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章