编写程序:从键盘上输入一个字符串,以$结束,再将字符串倒序输出(字符串不超过80个字符)。
输入样例:abcd#1234 efg$
输出样例:gfe 321#dcba
算法要求:逐个输入字符(21H中断的01H功能)并压栈,遇‘$’后,将字符出栈按倒序写入数据区,输出字符串(21H中断的09H功能)
编写的程序如下:
assume cs:code ,ds:data,ss:stack
data segment
x db 81 dup ('$')
stack segment
db 80 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,80
mov cx,0
s:mov al,01h
int 21h
cmp al,'$'
je z
push ax
inc cx
jmp s
z: pop ax
mov [0+si],al
inc si
loop z
mov dx,offset x
mov ah,09h
int 21h
mov ax,4c00h
int 21h
code ends
end start
运行结果截图: