首页 > 编程 > ASM > 正文

关于汇编中的NEG指令正解!(补码,反码,原码)现实意义

2019-11-14 11:13:14
字体:
来源:转载
供稿:网友

预计阅读时间:30秒。

本文核心:NEG命令就是取反+1 ,另一种方法,用0减去这个数的二进制。

在学习汇编指令的过程中,碰到好多的问题,例如刚刚碰到一道小小的问题(入门级)

知识点:

在汇编语言中,正数的补码=他本身,正数的反码=他本身,负数的补码=取反后+1,负数的反码=按位取反(0 变 1)。在汇编语言中,NEG命令代表取补运算,只有一个操作数,可以理解为,对操作数去补并把结果放在操作数中。

疑    点: 书本上明明写着正数的补码=他本身,可为什么执行以下命令后结果为 F0 呢 

        例:

MOV DH,10  //把10放到DX的高八位NEG DH     //对DH进行取补运算把结果放进DH中结果为:DH = F0

如果按书上的方法来算的话,最后结果应该依然是10H,因为10H是一个正数。

总结:在16位汇编语言中,NEG命令无论你是否为正负数,都会按照取反+1或用0减去这个数的二进制的办法去计算


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选