首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

初学者汇编小疑点

2013-01-20 
菜鸟求助汇编小问题最近在看汇编的教材看到书上有个写法MOV AX, -40;0FFD8H(-40)?AX表示看不懂其注释为什

菜鸟求助汇编小问题
最近在看汇编的教材
看到书上有个写法
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).

热点排行