为什么即使在增加5FH和33H时也设置标志标志



我正在研究大约8085微处理器,我遇到了一个指令-ADC。

在示例中,它们给出了累加器[A] = 57H,并且设置了寄存器[D] = 33H,最初设置了携带,因此[CY] = 01H

指令:ADC D他们增加了57h,33h和01h

0 1 0 1 1 1 1 1 1

0 0 1 1 0 0 1 1 1

0 0 0 0 0 0 0 1

答案:1 0 0 1 0 0 1 1。

他们说,由于MSB包含较高的位,因此设置了标志标志。我不明白为什么答案被认为是负面的,即使进行了加法操作。

根据定义为负。在两个的补充下,设置顶部钻头的任何数字都是负数。57 33 1 = 8b,它具有顶部钻头。因此,这是一个负数。

在您的情况下,不幸的是,寄存器不足以保持真实结果。如果它是16位寄存器,则您已经计算出0057 0033 0001 = 008B,但没有顶部位置。如果您打算保留有关签名的数字,那么您已经丢失了信息 - 您无法再判断这是否真的是十进制139或-117。但是,如果您纯粹是在未签名的数字中工作,那么您可以忽略符号标志。您知道它不适用。

您还可以使用溢流标志检查结果是否有错误的符号。如果两个阳性似乎产生了负面或两个负面的阳性,则溢出是为了增加的。

在您的情况下,应设置标志和溢出。

最新更新