汇编菜鸟急求字符串反向输出程序!

用汇编编3.11写这样一个程序:从键盘上输入一串字符并显示,然后按回车输出反向输出这串字符并显示!谢谢!

;屏幕能够控制有提示信息
.model small
.386
.stack 400h
.data
input db 'Please input the string:','$'
shuchu db 'The result is:','$'
buffer db 50, 0, 50 dup(?) ;定义了50个字符
;宏定义
screencontrol macro do ;进行屏幕的控制
mov ah,2 ;置光标
mov bh,0
mov dl,12 ;列号,可以自己修改
int 10h ;BIOS调用
lea dx,do
mov ah,9 ;显示字符串
int 21h
endm
.CODE
START:
mov ax,@data
mov ds,ax
mov es,ax
mov dh,7 ;置行号,可以自己修改
screencontrol input
lea si,buffer
mov dx,si
mov ah,0ah
int 21h
mov dh,9 ;置行号,可以自己修改
screencontrol shuchu
mov bx,[si+1]
and bx,000ffh
mov cx,bx
ok: mov dx,[si+bx+1]
mov ah,2
int 21h
dec bx
loop ok
mov ah,1 ;暂停,任意键关闭
int 21h
mov ah,4ch
int 21h
END START
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-12-09
上面用的是宏汇编,我用的是16位80x86汇编指令,不知道你更喜欢哪一种
data segment
aa db 100,?,100 dup(?)
bb db 100 dup(?),\'$\'
data ends
stack segment para stack\'stack\'
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
main: mov ax,data
mov ds,ax
lea dx,aa
mov ah,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
lea si,aa
inc si
mov cl,[si]
mov ch,0
add si,cx
lea di,bb
again:mov al,[si]
mov [di],al
dec si
inc di
loop again
lea dx,bb
mov ah,9
int 21h
mov ah,4ch
int 21h
code ends
end main
第2个回答  2019-10-20
;屏幕能够控制有提示信息
.model
small
.386
.stack
400h
.data
input
db
'Please
input
the
string:','$'
shuchu
db
'The
result
is:','$'
buffer
db
50,
0,
50
dup(?)
;定义了50个字符
;宏定义
screencontrol
macro
do
;进行屏幕的控制
mov
ah,2
;置光标
mov
bh,0
mov
dl,12
;列号,可以自己修改
int
10h
;BIOS调用
lea
dx,do
mov
ah,9
;显示字符串
int
21h
endm
.CODE
START:
mov
ax,@data
mov
ds,ax
mov
es,ax
mov
dh,7
;置行号,可以自己修改
screencontrol
input
lea
si,buffer
mov
dx,si
mov
ah,0ah
int
21h
mov
dh,9
;置行号,可以自己修改
screencontrol
shuchu
mov
bx,[si+1]
and
bx,000ffh
mov
cx,bx
ok:
mov
dx,[si+bx+1]
mov
ah,2
int
21h
dec
bx
loop
ok
mov
ah,1
;暂停,任意键关闭
int
21h
mov
ah,4ch
int
21h
END
START
相似回答