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

来源:互联网 发布:软件找不到指定模块 编辑:程序博客网 时间:2024/06/10 19:14

预计阅读时间:30秒。

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

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

知识点:

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

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

        例:

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


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


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

0 0