data segment
buff db 255 ;缓冲区,用于存放字符串
db ?
db 255 dup (?)
crlf db 0ah, 0dh, "$" ;回车换行
data ends
code segment
assume ds:data, cs:code
start:
mov ax, data ;取数据段存入ds中
mov ds, ax
lea dx, buff ;输入字符串到buff
mov ah, 0ah
int 21h
lea dx, crlf ;输出回车换行
mov ah, 9h
int 21h
lea si, buff + 2h ;取字符串地址到si中
mov cl, buff + 1h ;取字符个数到cl中
next:
cmp cl, 0h
je finish
mov dl, byte ptr [si] ;输出一个字符
mov ah, 2h
int 21h
dec cl ;计数器减1
inc si
jmp next
finish:
mov ah, 4ch
int 21h
code ends
end start