我正在网上课程中学习,并找到了一个解释减法运算的例子。在该示例中,
A = A5H , B = 9BH
和操作 SUB B 已执行。
8085微处理器中的减法运算是通过将subtrahend转换为2的补数,然后将其加到minuend来进行的,因此得出的答案为 A =(0000 1010)2 (see figure)
由于在操作之后很明显产生进位,因此必须将CY标志(即进位标志)置位。但他们的解释如下:
“ CY位似乎为'1'。但是它是补码,然后 存储。因此,CY位存储为“ 0”。
我不明白为什么要赞美进位标志?是因为subtrahend转换为2的补码还是其他?
答案 0 :(得分:0)
间接,是的。
为了按照808x架构的要求减去“借入”状态结果,您需要添加减法的补码,并对ALU的进位进行补码以获取“借入”位。因此,您出于有效地补充差额交易的相同原因而对进位进行了补充,但不是直接,因为您这样做了。
某些CPU的状态为“进位/不借位”,该状态使用了非互补的进位逻辑。参见https://en.wikipedia.org/wiki/Carry_flag#Carry_flag_vs._borrow_flag。