检测点11.2
进位 溢出 负/非负 零/非零 偶数/奇数(个一)
CF OF SF ZF PF
sub al,al 0 0 0 1 1
mov al,10H 0 0 0 1 1
add al,90H 0 0 1 0 1
mov al,80H 0 0 1 0 1
add al,80H 1 1 0 1 1
mov al,0FCH 1 1 0 1 1
add al,05H 1 0 0 0 0
mov al,7DH 1 0 0 0 0
add al,0BH 0 1 1 0 1
运算全过程
检测点11.2 (1)
检测点11.2(2)
解析
- 传送指令(mov push pop)不影响标志符
- 8位表示有符号数范围 -128~127,转换成十进制运算,判断是否溢出
- 遇到负数,要先转换成补码,再通过十进制运算,判断是否溢出
mov al,0FCH
0FCH = 1111 1100B
如果进行的是有符号数运算,
最高位的1表示这是一个负数,
需要转换成补码
补码形式为 0000 0011 + 1 = 0000 0100 = 04H = 4D
说明这个数是十进制的 -4 (负四)
add al,05H
5H = 5D
十进制运算 5 + (-4) = 1 在范围 -128~127 内,
所以没有产生溢出,
溢出标志符 OF = 0
- 其他标志符的判断,全部当做无符号数运算即可
解题参考
https://www.cnblogs.com/yangbin990/archive/2011/11/22/2258249.html