1. 什么是状态标志寄存器
状态标志位(Status Flags):
状态标志被分配到到一个称为标志寄存器(Status Flags Register)的特殊寄存器中。
该寄存器包含:
Zero Flag(ZF):判断存储数是否等于0
Sign Flag(SF):判断存储数是否为负数
Overflow Flag(OF):判断存储数是否溢出
Carry Flag(CF):判断运算是否有进位
标志寄存器结构:
当标志位为1时,表示其代表的状态存在
2. 各标志位如何工作的
2.1 Zero Flag(ZF):
ZF=所有位做 或非 运算(只有全为0时才会输出1)
2.2 Sign Flag(SF):
SF为符号位,即第一位bit
SF=1时为负数,SF=0时为正数
2.3 Overflow Flag(OF):
Cin=0,Cout=1:上溢出(overflow)
Cin=1,Cout=0:下溢出(underflow)
OF案例:
Case 1:4+5 ==0100+0101=1001=-7 答案错误
原因:Cin=1,Cout=0,OF=1 下溢出
Case 2:-6-5==1010+1011=0001=1 答案错误
原因:Cin=0,Cout=1,OF=1 上溢出
Case 3: -3-4==1101+1100=1001=-7 答案正确
原因:Cin=1,Cout=1,OF=0
注:(1) 4bit有符号加法范围为(7,-8]
(2) Cin和Cout计算方法详见:加法器复习_就叫你天选之人啦的博客-CSDN博客