我在assamble lang中的新篇章......但是我在一篇关于assamb的难题的问题上留下了一个问题...... 好 例如:
mov [bx],9h ;9h into segment in memory with value 9h
mov ax,[bx] ;i get what is pointed to memory in bx 9h
好的问题是,在这种情况下,返回是
ax
== ah
= 20 al
= 09对,我的值为9h,但为什么在ah
如果我这样做:
mov word ptr [bx],9h
mov ax ,[bx]
好...... ah
= 00 al
= 09
也可以这样:
mov word ptr [bx],9h
mov al ,[bx]
为什么20 ah
。
答案 0 :(得分:0)
值9h
适合一个字节,因此指令mov [bx],9h
与mov byte ptr [bx],9h
相同。它会将值09h
放在bx
指向的字节中。
当您将值读入ax
这是一个字操作时,ax
是一个字寄存器。它将获得您放入内存的值09h
,但也会获得后续字节中的值。在这种情况下,该值恰好是20h
。
当您使用mov word ptr [bx],9h
时,这是一个单词操作,值9h
会扩展为单词(0009h
)。它将作为两个字节09h
和00h
存储在内存中。
当你使用mov al ,[bx]
时,它是一个字节操作,因为al
是一个字节寄存器,所以它只会读取你存储的字节。