(1)、(2)一下代码已实测达到目的
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0
mov cx,40h
s:mov ds:[bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
(3)
我如何知道要复制的字节数量(指令在内存单元的起止/cx值)?
数字在内存中总是用2字节的空间来存储,不论cx设为多少(不超过2字节的情况下,而显然这段程序没有那么大),程序装载到内存的位置都不会变
因此可以任意设置cx值,然后在debug里用u命令找到指令的起止位置,然后重设cx
另一种方法是,每条指令有固定的大小,一条条相加即可得到总字节数量
两种方法,一点也不优雅
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,17h
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end