丨尊丶江少灬 发表于 2011-12-8 20:26:50

请教一下基础问题,ax的存取问题……

本帖最后由 丨尊丶江少灬 于 2011-12-8 20:53 编辑

请教一下各路高手,小弟初学汇编,问一个基础问题,为什么ax内容存进去内存时候占3个单元,但读出来的时候只占两个单元?
例如把ax的内容送去1000:0,然后 IP 之类的偏移量就会加三,就是说下条指令直接指到1000:3,说明1000:01000:1   1000:2都占用了
但是如果ax读取的话,ax就只会读取两个单元的内容,例如把1000:0 单元送到ax,ax只会接收1000:0跟1000:1的内容……这个是为什么呢……希望自己表达得够清楚……

kane080824 发表于 2011-12-8 21:06:49

本帖最后由 kane080824 于 2011-12-8 21:50 编辑

mov ax,0011
是占三个单元-----mov ax,n(立即数)的机器码B8占一个字节,0011因为是传送给ax,所以是16位的字型数据,因此0011占两个字节,也即一个字,所以mov ax,0011在内存中存放为:B8 0B 00;0B 00为11的十六进制,高字节放后面,低字节放前面

丨尊丶江少灬 发表于 2011-12-8 21:16:05

kane080824 发表于 2011-12-8 21:06 static/image/common/back.gif
mov ax,0011
是占三个单元-----mov ax,n(立即数)的机器码B8占一个字节,0011因为是传送给ax,所以是16位的字 ...

嗯,懂了,谢谢……只要是立即数都加B8是嘛?

kane080824 发表于 2011-12-8 21:40:24

只要是立即数都加B8是嘛?   
是的

theron1988 发表于 2011-12-8 21:44:08

LZ真细心:D
页: [1]
查看完整版本: 请教一下基础问题,ax的存取问题……