汇编程序补全

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:08:37
下面的程序的功能食将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序
assume cs :code
code segment
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,4cooh
int 21h
code ends
end
另外 复制的是什么?从哪里到哪里?有多少字节?如何知道要复制的字节的数量?
注:补全程序,回答问题,最好解释一下为什么~~~

assume cs :code
code segment
mov ax, cs
mov ds,ax ;使ds=cs 因下面[bx]默认是ds:[bx]
mov ax,0020h
mov es,ax ;使es段地址=目的地址0000:200
mov bx,0
mov cx,1ch ;要移动的字节数
s:
mov al,[bx] ;al=ds:[bx] 即=cs:[bx]
mov es:[bx],al ;移动一个字节
inc bx ;下一个字节
loop s
mov ax,4c00h ;结束
int 21h
code ends
end
================
复制的是代码段的代码
从mov ax,cs到int 21h
有1ch字节
--
可以先写20代替
编译成exe后
再debug t.exe
就可从cx中看到1ch
--

最后debug t.exe
u0000:200
就可看到自制过来的代码