【任务】定义一个数据区, 它包含有’ABCD’四个字符数据, 把这个数据区复制20次, 并显示出复制结果。(要求用字符串指令)
data segment
pattern db 'ABCD'
display db 80 dup(' '), '$'
data ends
【参考解答】
assume cs:code,ds:data
data segment
pattern db 'ABCD'
display db 80 dup(' '), '$' ;'$'作为调用中断显示时的中止字符
data ends
code segment
start:mov ax,data
mov ds,ax
mov es, ax ;必须设置
cld ;设置方向寄存器
lea si, pattern
lea di, display
mov cx, 80 ;这儿很巧妙,先前到目标地址处的字符,又充当了源字符,总之复制80个
rep movsb ;用串传送复制
mov ah, 09H ;调用21H中断中的9号功能显示结果
lea dx, display
int 21H
mov ax, 4c00h
int 21h
code ends
end start