汇编语言学习笔记(4)

时间:2022-04-01 03:29:14

题目描述:编写一程序,从键盘输入一个不超过40个字符的串,然后逆序输出。

分析:循环输入,每次输入判断是否为回车,是则结束,否则字符进栈,使用一个寄存器保存输入的字符数,以便输入完成后修改出栈次数,完成逆序。

代码:


stack segment
dw 100 dup(?)
top label word
stack ends
code segment
start:
assume ss:stack,cs:code

mov ax,stack
mov ss,ax
mov sp,offset top

mov cx,40 ;次数控制
mov bx,0

loop1:
mov ah,01H
int 21h
cmp al,0DH ;回车判定
je next
mov ah,0
push ax
inc bx
loop loop1

next:
mov cx,bx

output:
pop dx
mov ah,02H
int 21h
loop output

mov ax,4C00H
int 21h
code ends
end start

汇编语言学习笔记(4)

 过程出现的问题:进栈出栈的时候没有注意到时字操作,直接使用了AL,DL  。判断回车的时候直接跳转到output,没有修改CX。