汇编程序的简洁写法
编写程序:从键盘上输入一个字符串,以$结束,再将字符串倒序输出(字符串不超过80个字符)。要求用更简洁的写新法完成
输入样例:abcd#1234 efg$
输出样例:gfe 321#dcba
提示解法:
1、输入输出:字符的输入输出可以用DOS中断的01H功能,也可以用BIOS中断;
2、数据结构:可以用栈结构实现倒序,也可以专门设数据区,接受输入、变换并输出。
编写的程序如下:
.8086
.MODEL small
.data
str db 13, 10, 100H dup('$')
.stack 100H
.code
start:
mov ax, @data
mov ds, ax
lea bx, str
add bx, 2
mov cx, 0
input:
mov ah, 01h ;DOS INT21H 01H 输入字符并回显
int 21h
cmp al, '$'
je savestr
push ax ;栈只对字类型操作
inc cx
jmp input
savestr:
pop ax
mov [bx], al
inc bx
loop savestr
lea dx, str ;DOS INT21H 09H 输出字符串
mov ah, 09H ;DS:DX首地址 以'$'结束
int 21h
stop:
mov ax, 4c00h
int 21h
end start