早教吧作业答案频道 -->数学-->
汇编减法指令产生借位时是如何实现让CF置1的?已经知道计算机里只有加法器,没有减法器.减法是化作补码的加法运算来实现的.那么做减法运算时借位标志CF是否被置1,应该是根据操作数的补
题目详情
汇编减法指令产生借位时是如何实现让CF置1的?
已经知道计算机里只有加法器,没有减法器.减法是化作补码的加法运算来实现的.那么做减法运算时借位标志CF是否被置1,应该是根据操作数的补码的加法运算结果是否产生进位来决定的.
然后我发现一个奇怪的问题,汇编指令如下:
CLC (清空CF,CF=0)
MOV DX,8234H
MOV AX,01EEH (AX=01EEH ,CF=0)
SUB AX,4491H (AX=BD5DH ,CF=1)
SBB DX,8000H (DX=1468H ,CF=0)
然后我按照模拟计算机里的补码运算来操作了一便.
01EEH化成二进制为:0000 0001 1110 1110
4491H化成二进制为:0100 0100 1001 0001
上面两个都是真值,按照补码运算原理,X-Y = X + [-Y]补.
所以0000 0001 1110 1110的原码为 0000 0001 1110 1110,补码为 0000 0001 1110 1110
-0100 0100 1001 0001的原码为 1100 0100 1001 0001,补码为 1011 1011 0110 1111.
所以01EEH-4491H在计算机的运算是如下的补码运算:
0000 0001 1110 1110
+ 1011 1011 0110 1111
------------------------
1011 1101 0101 1101
结果确实是BD5DH,但问题也随之来了,这个运算结果的最高位并没有产生进位,也就是CF标志位并没有被置1.那上面汇编语句里的倒数第二句括号里的注释却是CF=1.当然理论上01EEH-4491H确实要借位(CF要被置1),但按上面运算过程来看,CF却没有被置1.那实际过程中CF里的哪个1到底是怎么弄上去的呢?小弟水平有限,(说明一下,上面的汇编语句没有问题)
已经知道计算机里只有加法器,没有减法器.减法是化作补码的加法运算来实现的.那么做减法运算时借位标志CF是否被置1,应该是根据操作数的补码的加法运算结果是否产生进位来决定的.
然后我发现一个奇怪的问题,汇编指令如下:
CLC (清空CF,CF=0)
MOV DX,8234H
MOV AX,01EEH (AX=01EEH ,CF=0)
SUB AX,4491H (AX=BD5DH ,CF=1)
SBB DX,8000H (DX=1468H ,CF=0)
然后我按照模拟计算机里的补码运算来操作了一便.
01EEH化成二进制为:0000 0001 1110 1110
4491H化成二进制为:0100 0100 1001 0001
上面两个都是真值,按照补码运算原理,X-Y = X + [-Y]补.
所以0000 0001 1110 1110的原码为 0000 0001 1110 1110,补码为 0000 0001 1110 1110
-0100 0100 1001 0001的原码为 1100 0100 1001 0001,补码为 1011 1011 0110 1111.
所以01EEH-4491H在计算机的运算是如下的补码运算:
0000 0001 1110 1110
+ 1011 1011 0110 1111
------------------------
1011 1101 0101 1101
结果确实是BD5DH,但问题也随之来了,这个运算结果的最高位并没有产生进位,也就是CF标志位并没有被置1.那上面汇编语句里的倒数第二句括号里的注释却是CF=1.当然理论上01EEH-4491H确实要借位(CF要被置1),但按上面运算过程来看,CF却没有被置1.那实际过程中CF里的哪个1到底是怎么弄上去的呢?小弟水平有限,(说明一下,上面的汇编语句没有问题)
▼优质解答
答案和解析
当CPU计算的时候,并不是按照补码的.
只是按照一般的二进制数字进行计算.
--------
把机器数,看成补码,这只是人的想法.
把负数求补码的时候,按照其定义式,就是用《模》减去《负数的绝对值》.
这里面,就平白的多了一个模.
(你不要想着用求反加一来求补码.这种方法也对,但是掩盖真相.)
所以,用补码来计算,就会差了一个进位.
这个进位,就是求补码时加进去的模.
只是按照一般的二进制数字进行计算.
--------
把机器数,看成补码,这只是人的想法.
把负数求补码的时候,按照其定义式,就是用《模》减去《负数的绝对值》.
这里面,就平白的多了一个模.
(你不要想着用求反加一来求补码.这种方法也对,但是掩盖真相.)
所以,用补码来计算,就会差了一个进位.
这个进位,就是求补码时加进去的模.
看了 汇编减法指令产生借位时是如何...的网友还看了以下:
一年之中地球与太阳之间的距离随时间而变化,1个天文单位是地球与太阳之间的平均距离,即1.4960亿 2020-04-11 …
根据电场强度的定义式E=F/q,在国际单位制中,电场强度的单位应是:A.牛/库;B.牛/焦;C.焦 2020-05-13 …
在消化道的某一部位内抽取内容物进行化验,结果发现其中的脂肪类物质还没有被消化,蛋白质却已被初步消化 2020-06-23 …
坐落在辽宁省丹东市的抗美援朝纪念馆中,在醒目的位置陈列着两个著名人物的雕塑,其中,一位是毛泽东,另 2020-06-27 …
洋葱是生物学实验的常用材料之一,左图是经一段时间培养后的洋葱示意图,请回答下列问题:(1)若利用此洋 2020-10-29 …
洋葱是生物学实验的常用材料之一,下图是经一段时间培养后的洋葱示意图,请回答下列问题:(1)若利用此洋 2020-10-29 …
假设地球是正圆的,站在x千米的高处,若没有障碍物最远能看到多少距离外的地平线如题,不要给我h=112 2020-11-24 …
中国文化把五行、五色、五方位甚至五味、五脏等一一对应。如以青龙、白虎、朱雀、玄武等颜色对应方位。根据 2020-11-25 …
如8是光学显微镜结构示意8.(1)使看到i物像更清晰,应轻微调节i结构是.(2)物镜是指8中i.(填 2020-12-03 …
在某一博物馆中,讲解员在讲解如图器物时说:“这是目前世界上已发现的最大青铜器…”它应是()A.四羊方 2020-12-07 …