请教一下基础问题,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:50 编辑
mov ax,0011
是占三个单元-----mov ax,n(立即数)的机器码B8占一个字节,0011因为是传送给ax,所以是16位的字型数据,因此0011占两个字节,也即一个字,所以mov ax,0011在内存中存放为:B8 0B 00;0B 00为11的十六进制,高字节放后面,低字节放前面 kane080824 发表于 2011-12-8 21:06 static/image/common/back.gif
mov ax,0011
是占三个单元-----mov ax,n(立即数)的机器码B8占一个字节,0011因为是传送给ax,所以是16位的字 ...
嗯,懂了,谢谢……只要是立即数都加B8是嘛? 只要是立即数都加B8是嘛?
是的 LZ真细心:D
页:
[1]