8085微处理器减数转2的补码时进位标志是否补码?
Is carry flag complemented when subtrahend is converted into 2's complement in 8085 microprocessor?
我正在学习网络课程,发现了一个解释减法运算的例子。在那个例子中,
A=A5H,B=9BH
并执行了操作 SUB B。
由于8085微处理器中的减法运算是将减数转化为2的补码再与被减数相加,所以得到的答案是A= (0000 1010)2 (see figure)
由于运算后明显可见进位,所以必须设置CY标志,即进位标志。但他们解释如下:
"CY位好像是'1',但是补了然后
存储。因此,CY 位存储为‘0’。”
我不明白为什么要夸carry flag?是因为减数变成了2的补码还是别的?
间接地,是的。
为了按照 808x 架构要求用 'borrow' 状态结果进行减法,您添加减数的补码,并对 ALU 的进位进行补码以获得 'borrow' 位。因此,您补进位的原因与补减减数的原因相同,但不是直接 因为 您这样做了。
一些 CPU 反而有一个 'carry/NOT borrow' 状态,它使用未补充的进位逻辑。参见 https://en.wikipedia.org/wiki/Carry_flag#Carry_flag_vs._borrow_flag。
我正在学习网络课程,发现了一个解释减法运算的例子。在那个例子中,
A=A5H,B=9BH
并执行了操作 SUB B。
由于8085微处理器中的减法运算是将减数转化为2的补码再与被减数相加,所以得到的答案是A= (0000 1010)2 (see figure)
由于运算后明显可见进位,所以必须设置CY标志,即进位标志。但他们解释如下:
"CY位好像是'1',但是补了然后 存储。因此,CY 位存储为‘0’。”
我不明白为什么要夸carry flag?是因为减数变成了2的补码还是别的?
间接地,是的。
为了按照 808x 架构要求用 'borrow' 状态结果进行减法,您添加减数的补码,并对 ALU 的进位进行补码以获得 'borrow' 位。因此,您补进位的原因与补减减数的原因相同,但不是直接 因为 您这样做了。
一些 CPU 反而有一个 'carry/NOT borrow' 状态,它使用未补充的进位逻辑。参见 https://en.wikipedia.org/wiki/Carry_flag#Carry_flag_vs._borrow_flag。