在8085微处理器中将子代数转换为2的补码时,进位标志是否被补充?

时间:2018-09-30 00:46:55

标签: flags subtraction 8085 carryflag

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

A = A5H B = 9BH

和操作 SUB B 已执行。

8085微处理器中的减法运算是通过将subtrahend转换为2的补数,然后将其加到minuend来进行的,因此得出的答案为 A =(0000 1010)2 (see figure)

由于在操作之后很明显产生进位,因此必须将CY标志(即进位标志)置位。但他们的解释如下:

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

我不明白为什么要赞美进位标志?是因为subtrahend转换为2的补码还是其他?

1 个答案:

答案 0 :(得分:0)

间接,是的。

为了按照808x架构的要求减去“借入”状态结果,您需要添加减法的补码,并对ALU的进位进行补码以获取“借入”位。因此,您出于有效地补充差额交易的相同原因而对进位进行了补充,但不是直接,因为您这样做了。

某些CPU的状态为“进位/不借位”,该状态使用了非互补的进位逻辑。参见https://en.wikipedia.org/wiki/Carry_flag#Carry_flag_vs._borrow_flag