
用汇编语言从键盘上输入一串字符,在下一行以相反的次序显示
我这有个程序但是汇编程序显示是错的,这是为什么?请帮忙改正。datasegmentmaxequ128inputdbmax;采用DOS中断调用0AHdb?dbmaxdup(...
我这有个程序但是汇编程序显示是错的,这是为什么?请帮忙改正。
data segment
max equ 128
input db max ;采用DOS中断调用0AH
db ?
db max dup(?)
msg db 'Please input a string:'
clrf db 0dh,0ah,'$' ;回车换行
output db 'The result is:$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov ah,09h
lea dx,msg
int 21h
mov ah,0ah ;输入字符串
lea dx,input
int 21h
mov ah,09
lea dx,clrf
int 21h
mov ah,09h
lea dx,output
int 21h
mov ah,09
lea dx,clrf
int 21h
mov cl,input+1 ;input+1处为实际输入字符个数
mov ch,0
mov dl,input+1
mov dh,0
lea si,input+2 ;input+2处为实际输入字符的起始地址
add si,dx
s0: dec si ;SI为最后一个字符的地址
mov ah,02h
mov dl,[si]
int 21h
loop s0
mov ah,4ch
int 21h
code ends
end start
我用的是masm32 展开
data segment
max equ 128
input db max ;采用DOS中断调用0AH
db ?
db max dup(?)
msg db 'Please input a string:'
clrf db 0dh,0ah,'$' ;回车换行
output db 'The result is:$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov ah,09h
lea dx,msg
int 21h
mov ah,0ah ;输入字符串
lea dx,input
int 21h
mov ah,09
lea dx,clrf
int 21h
mov ah,09h
lea dx,output
int 21h
mov ah,09
lea dx,clrf
int 21h
mov cl,input+1 ;input+1处为实际输入字符个数
mov ch,0
mov dl,input+1
mov dh,0
lea si,input+2 ;input+2处为实际输入字符的起始地址
add si,dx
s0: dec si ;SI为最后一个字符的地址
mov ah,02h
mov dl,[si]
int 21h
loop s0
mov ah,4ch
int 21h
code ends
end start
我用的是masm32 展开
2个回答

2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询