我正在学习x86汇编(更具体地说是8086),我对标志的概念感到困惑,我试着在网上搜索它,发现了这张图片:
根据该图像,在两个16位数的加法运算之后,OF标志仍然被清除为0。
但我了解到,如果要相加的两个数字的MSB是off(即0),而结果的MSB是1,则发生了溢出。
链接到我从中了解到这一点的网页:http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt
有人能解释一下为什么OF仍然是0吗?
我正在学习x86汇编(更具体地说是8086),我对标志的概念感到困惑,我试着在网上搜索它,发现了这张图片:
根据该图像,在两个16位数的加法运算之后,OF标志仍然被清除为0。
但我了解到,如果要相加的两个数字的MSB是off(即0),而结果的MSB是1,则发生了溢出。
链接到我从中了解到这一点的网页:http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt
有人能解释一下为什么OF仍然是0吗?
1条答案
按热度按时间qltillow1#
用手算一下
同时设置它们
两个都开始工作
但它们已经不匹配了
无借位,因此借位标志= 1,进位标志= 1(借位的反相)。输入和输出的msbit相同,因此无带符号溢出。非零,因此无零标志。并且msbit为零,因此负标志为零。