0

我正在学习网络课程,并找到了一个解释减法运算的示例。在那个例子中,

A= A5H , B= 9BH

并且执行了操作SUB B。

由于8085微处理器中的减法运算是通过将减数转换为2的补码然后将其与被减数相加,因此得到的答案是A =(0000 1010)2 (见图)

由于操作后产生了进位是很明显的,所以必须设置CY标志,即进位标志。但他们解释如下:

“CY 位似乎是‘1’。但它是补码后存储的。因此,CY 位存储为‘0’。”

我不明白为什么要称赞carry flag?是因为减数被转换为2的补码还是其他什么?

4

1 回答 1

0

间接地,是的。

为了按照 808x 架构的要求减去“借”状态结果,您可以添加减数的补数,并对 ALU 的进位进行补码以获得“借”位。因此,您补充进位的原因与补充减数的原因相同,但不是直接因为您这样做了。

相反,一些 CPU 具有“进位/不借用”状态,该状态使用未补充的进位逻辑。请参阅https://en.wikipedia.org/wiki/Carry_flag#Carry_flag_vs._borrow_flag

于 2018-09-30T02:42:10.387 回答