我有下一个代码:
mov al, -5
add al, 132
add al, 1
据我检查,溢出标志和进位标志将在第一个操作中设置,而在第二个操作中,仅设置溢出。
但我不明白为什么:
- 在无符号数中,结果为 143 (8FH),适合 8 位无符号数(小于 255)=> 不应设置进位标志。在有符号数中,结果为127,适合8位有符号,不应该设置溢出。
怎么了?谢谢。
最佳答案
当两个正数相加的结果为负数或
两个负数相加的结果是正数。
例如:
+127+1=?
+127=0111 1111
+1=0000 0001
---------
1000 0000
当我们查看两个操作数的符号位和 结果发现发生了溢出,答案不正确。
关于汇编-进位标志VS溢出标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496185/