当前位置: 代码迷 >> 汇编语言 >> 初学者汇编小疑点
  详细解决方案

初学者汇编小疑点

热度:9353   发布时间:2013-02-26 00:00:00.0
菜鸟求助汇编小问题
最近在看汇编的教材
看到书上有个写法
MOV AX, -40        ;    0FFD8H(-40)?AX
表示看不懂其注释
为什么0FFD8H会和-40相提并论呢
0FFD8H不是有5位代表20位二进制
AX只有16位这怎么可能送到AX内呢?
求详细讲解
我是菜鸟,确实对汇编知之胜少
汇编

------解决方案--------------------------------------------------------
16 进制数以 a-f 开头的,用 0 作前导。
------解决方案--------------------------------------------------------
十六位用0表示开始,H结尾 其实数值部分就是 FFD8(16个数呢) 符号标志位是1-->负数 所以是-40 你可以用windows自带的计算器算一下,然后你那个传入AX的问题应该就会了吧。
------解决方案--------------------------------------------------------
对于立即数而言,如果以字母开头,则前面要加个0的,
第二个 FFD8是 -40在计算机当中的表示,用补码表示,给你验算下:
   -40在 换算成二进制数表示为  1000 0000 0010 1000(一共十六位,最高位1表示负数)
   根据补码 = 反码(除最高符号位取反) + 1
  得到      原来:    1000 0000 0010 1000
            取反:    1111 1111 1101 0111
            补码:     1111 1111 1101 1000  ( 换算成十六进制 FFD8).
  相关解决方案