-1

这是我做的练习测验中的一个问题,但我不明白为什么 V 标志是 1。

在此处输入图像描述

4

2 回答 2

2

83 美元 = –125
美元 74 美元 = 116

–125 – 116 = –241,不适合 8 位。(8 位有符号数的范围是 –128 到 +127。)由于结果不合适,您会得到有符号溢出,这会设置 V 位。

于 2020-02-12T07:00:38.843 回答
0

$83 - $74 = $83 + (-$74) = $83 + (~$74) + 1

这就是逻辑的看法。

          1
   10000011
+  10001011
==============

结束

  100000111
   10000011
+  10001011
==============
   00001111

如果 msbit 的进位和进位不匹配,则确定 v 标志的两种等效方法,则设置 v 标志,否则不设置。另一种方法是,如果操作数的 msbits(记住要反转和加一个,因为这是逻辑中的加法而不是减法)相同并且结果 msbit 与两个匹配的操作数不同,那么如果所有三个都是溢出,则它是溢出相同或两个操作数 msbit 不同,则 v = 0。

这是如何理解为什么看到 prl 的答案,答案不适合可用的位数。

C 标志是特定于架构的减法,您反转第二个操作数并反转进位(使其为 1),在途中,一些架构反转进位使其成为借位,其他人离开照原样。通常没有文档记录,因此您必须尝试找出架构的作用。

于 2020-02-12T15:22:41.287 回答