我想问下汇编语言(王爽)实验4 第三题

(3)程序功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全程序:
...
mov ax,___
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,___

s:
mov al,[bx]
mov es:[bx],al
inc bx
loop s

mov ax,4c00h

在网上找了很多答案说第一个空填cs什么的,我想问下这个提里面的存放程序的内存地址的偏移地址是0,我想问是不是每个程序的起始偏移地址都是0啊?要是0存放的是其他的代码的话呢?

还有就是0000是不是也算是两个字节?

你要将指令复制过去,那肯定要得到CS的地址,所以 mov ax, cs
因为第一句是作为程序的起始,那当然是0,就算你在mov ax,cs之前再加上
mov bx, 0, mov cx, 0,.......
再加多少句,起始位置依旧是0.

从字面上来看,0000是可以看成两字节
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-11
程序入口地址不一定都是0处,也可大于0。0处可放其他数据或其他可执行代码等。
0000是占俩字节。