汇编问题,求解答

设AX=0D87BH执行下列指令NEGAXNOTAX结果为啥是0D87AH啊??负数的补码不是最高位是1吗?那么0D87BH=1011100001111011B,执行NE... 设AX=0D87BH执行下列指令 NEG AX NOT AX 结果为啥是0D87AH啊??负数的补码不是最高位是1吗?那么0D87BH=1011 1000 0111 1011B,执行NEG后AX=1100 0111 1000 0101B,再执行NOT后AX=0011 1000 0111 1010B=387AH吗?答案为啥是0D87AH啊??? 展开
 我来答
百度网友dd2a4ae
2013-03-07 · TA获得超过1.6万个赞
知道大有可为答主
回答量:2628
采纳率:11%
帮助的人:1955万
展开全部
AX = 0D87BH = 1101 1000 0111 1011B
NEG指令对其取补运算,就是用0减去它,结果是AX = 0010 0111 1000 0101 B
NOT指令对其取反运算,结果是 AX = 1101 1000 0111 1010 B = 0D87AH

你先是粗心犯了一个小错误,原始数据第一个十六进制位 D 的二进制值是1101,你错写成 1011了。
然后你对NEG的理解有误,NEG指令是对操作数进行求补运算,不是写出负数的补码。
求补运算,是指用0减掉源操作数,有点类似于乘以(-1)。
负数求补,结果变正(8000H除外)。正数求补,结果变负。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式