(1)编程,向内存0:200~0:23f依次传送数据0~63.
assume cs:code
code segment
mov ax,20H
mov ds,ax
mov bx,0
mov cx,64
s:
mov [bx],bl
inc bx
loop s
mov ax,4c00H
int 21H
code ends
end
(3)程序功能是将"mov ax,4c00h"之前的指令复制到内存0:200处,补全程序:
;只写关键代码
;每次复制单字节数据,并通过al中转
;程序入口为cs:0(ip=0),所以第一空处传递段地址为cs
;接下来需要确定循环次数,即mov ax,4c00h之前的代码长度
;而程序总代码长度可通过debug加载后通过u命令看出
;先将第二空位随便设为1,加载后观察mov ax,4c00h之前代码为0000~0016h,总长度为23.
...
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,23
s:
mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
...
通过"u 0:200"查看如下图: