如何用汇编实现从键盘输入字符串并颠倒后输出

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:20:45

阿门 可怜的孩子 没人回答你 我来给你写上
用masm 编译过了
data segment
scanf db 100,?,100 dup(?)
printf db 100 dup(?)
data ends
code segment
assume ds:data,cs:code
start:mov ax,data
mov ds,ax
xor ax,ax
mov ah,0ah
int 21h
xor ax,ax
mov di,offset scanf
mov bl,[di+1]
mov di,offset printf
mov cx,bx
loop1:
mov al,[bx+2]
mov [di],al
dec bx
inc di
loop loop1
mov al,24h
mov [di],al
mov dx,offset printf
xor ax,ax
mov ah,09h
int 21h
mov ax,4c00h
int 21h
code ends
end start

小胖的程序思路基本正确,但算法繁琐,运行时有严重
错误。修改不如重写(下面程序,经实际运行,结果正确):

code segment
assume cs:code,ds:code,ss:code
ORG 100H
start:
Jmp Begin
Tips dB 'Please Input a String...',0dh,0ah,'$'
Begin:
push cs
pop ds
lea dx,Tips;提示
mov ah,9
int 21h
xor cx,cx
Q0:mov ah,0
int 16h;接收键盘
cmp al,0dh;是回车