一个接受输入的字符串并反向输出的程序分析
by shile
文章排版真的很不好弄。
代码:
.model small
.386
DATA segment
msg1 db 'Please input a string.',0DH,0Ah,'$'
buf db 100, 0 ,100 DUP (0)
crlf db 0Dh,0Ah,'$'
DATA ends
STACK segment
DB 20 DUP (0)
STACK ends
CODE segment
assume cs:CODE,ds:DATA,ss:STACK
START:
mov ax,DATA
mov ds,ax
lea dx,msg1 ;输出提示文字
mov ah,9
int 21h
lea dx,buf
mov ah,0Ah ;接受字符串
int 21h
mov dx,offset crlf
mov ah,9 ;输出字符串中断
int 21h
mov bl,buf+1;字符串长度送到bl
mov bh,0
cmp bx,0
jz EXIT
L1:mov dl,buf+1[bx] ;把最后一位送到dl
mov ah,2 ;输出一个字符中断
int 21H
dec bx ;倒着输出字符
jnz l1
EXIT:mov AH,4CH
int 21H
CODE ends
END START