📄 字符串逆序输出.asm
字号:
;si执行源操作数地址,di指向目的操作数地址
data segment
Msg1 db "Please input a string:$"
Msg2 db 0ah,0dh,"It's reverse string is:$"
String1 db 100,?,100 dup(?)
String2 db 100,?,100 dup(?)
Msg db 0ah,0dh,'$'
num db ?
data ends
stack segment para stack
db 20h dup(?)
stack ends
code segment
assume cs:code,ss:stack,es:data,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
lea dx,Msg1
mov ah,09h
int 21h
lea dx,String1
mov ah,0ah
int 21h
lea si,String1
inc si
mov al,[si]
mov num,al
mov ah,0
add si,ax
lea di,String2
add di,2
call reverse
lea dx,Msg2
mov ah,09h
int 21h
lea dx,String2+2
mov ah,09h
int 21h
mov ah,4ch
int 21h
;--------------------------------
reverse proc
push ax
push dx
mov cl,num
lop:
std
lodsb
cld
stosb
loop lop
mov byte ptr[di],'$'
pop dx
pop ax
ret
reverse endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -