好友
阅读权限25
听众
最后登录1970-1-1
|
本帖最后由 niucaidi 于 2021-7-8 22:52 编辑
标志寄存器
-
进位标志CF(Carry Flag) :如果加法 运算结果的最高位 产生了一个进位,或者在减法 运算过程中最高位不够减,向最高位的前面一位进行了借位 ,那么其值为1 ,否则为0
- 例1:观察Mov al,0xEF 丨 ADD,al,2的结果
- 例2:观察Mov al,0xFE 丨 ADD,al,2的结果
-
奇偶标志PF(Parity Flag) :奇偶标志PF用于反映运算结果的最低有效字节 中1的个数 的奇偶性。如果1的个数 为偶数,则PF的值为1 ,否则为0 .
- MOV AL,3
- ADD AL,3
- ADD AL,2
-
辅助进位标志AF(Auxiliary Carry Flag) :在发生下列情况时,辅助进位标志AF的值为1 ,否则为0
- 1.在字操作时,发生低字节向高字节进位或借位时
- 2.在字节操作时,发生低4位向高4位进位或借位时
- 例1:观察Mov eax,0x55EEFFFF 丨 ADD EAX,2的结果
- 例2:观察MOV AX,5FEF 丨 ADD AX,2的结果
- 例3:观察MOV AL,4E 丨 ADD AL,2
-
零标志ZF(zero Flag) :零标志位用来反映运算结果是否为0 ,如果运算结果是0 ,那么其值为1 ,否则为0 .在判断运算结果是否为0 时可以使用此标志位
- 例1:XOR EAX,EAX
- 例2:MOV EAX,2 丨 SUB EAX,2
-
符号标志SF(Sign Flag) :符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。
-
溢出标志位OF(Overflow Flag) :溢出标志位OF 用于反映有符号数加减运算所得到的结果是否溢出,如果运算结果超出当前位数所能表示的范畴,则称为溢出,OF 的值被置为1 ,否则OF 的值为0 ,在具体运算过程中OF 会进行两个判断,分别为:一.符号位有没有进位,有进位得到1,无进位得到0 ,二.最高有效数值位向符号位产生的进位,有进位得到1,无进位得到0 ,最后将上述两个结果进行异或运算(xor) ,若运算结果为1 ,则将oF 置为1 ,否则为0
- 最高位进位与溢出的区别
- 进位标志
CF 表示无符号 数运算结果是否超出范围
- 溢出标志
OF 表示有符号 数运算结果是否超出范围
- 溢出标志主要是给
有符号 运算使用的,在有符号运算中有如下规律
正 + 正 = 正 ,倘若结果为负 ,则说明有溢出
负 + 负 = 负 ,倘若结果为正 ,则说明有溢出
正 + 负 永远不会溢出
- 附作业:
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|