h2995527 发表于 2011-2-6 12:56:23

用mov ax,【0001】时,为什么要拖入一个高位?

本帖最后由 h2995527 于 2011-2-6 13:01 编辑

为什么不是 高八位 全补0
mov ax,【0001】要 赋ax的值 只是0001 ,并没有要赋值 0002的值给AX。
为什么还要 托 高八位给 AX?

yuyuhongss 发表于 2011-2-6 13:48:22

对吖,mov ax,在debug里被当做数值1而不是内存地址。所以1的2进制码放在低八位,高八位全补0吖。
额。。不知道我说没说错额..

h2995527 发表于 2011-2-6 13:50:19

你说错的, 你说的是 mov ax,0001
和       mov ax,
是不一样的:loveliness:

yuyuhongss 发表于 2011-2-6 14:32:56

回复 3# h2995527


    是一样的吖。。额。。我表达能力有限。。:'(

十六进制的1是一个字节吧,自然放在低八位的吖。高八位补0.。。

thrill 发表于 2011-2-8 15:07:25

因为 ax寄存器是16位的寄存器mov运算操作前后操作数必须匹配所以要把0002的高8位也传过去

thrill 发表于 2011-2-8 15:09:30

补充下如果你只要赋值低8位要用mov al, 这样只会把偏移地址为0001的字节传过去

小甲鱼 发表于 2011-2-8 21:01:45

是一个字节单元~

小甲鱼 发表于 2011-2-8 21:01:56

ax是一个字单元咯~

wjxzmy 发表于 2011-2-10 15:39:38

来学习一下!!!

復襍 发表于 2013-9-19 10:36:58

随便看看,收藏丶东西,这是很好的习惯。

ilboyvm 发表于 2014-10-20 01:29:49

mov运算操作前后操作数必须匹配
页: [1]
查看完整版本: 用mov ax,【0001】时,为什么要拖入一个高位?