汇编语言,从键盘上输入一串字符串,当输入字符是回车时,显示输入的所有字符 15

如题... 如题 展开
 我来答
做而论道
高能答主

推荐于2018-06-29 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
下列程序已经调试通过。
;---------------------------------
DATA SEGMENT
MSG1 DB 13, 10, 'Please input a char : ', 13, 10, 13, 10, '$'
DDD1 DB 13, 10, 13, 10
DDD2 DB 81 DUP ('$')
DATA ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;---------------------------------
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV DI, OFFSET DDD2
LOP:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 13
JZ EXIT ;'回车'结束.
MOV [DI], AL
INC DI
CMP DI, OFFSET DDD2 + 80
JZ EXIT ;输入80个字符了,也结束.
JMP LOP ;继续输入.
;---------------------------------
EXIT:
MOV DX, OFFSET DDD1
MOV AH, 9 ;9号功能调用.
INT 21H ;显示输入的字符.
;---------------------------------
MOV AH, 4CH ;程序结束.
INT 21H
;---------------------------------
CODE ENDS
END START
;---------------------------------
sym_东方不败
2011-09-13 · TA获得超过706个赞
知道小有建树答主
回答量:705
采纳率:50%
帮助的人:357万
展开全部
;从键盘输入一字符串,然后下一行显示
.386
data segment use16
buf db 50 ;定义缓冲区
db 0
db 50 dup(0)
crlf db odh,oah,'$' ;回车换行
data ends

stack segment use16 stack
db 200 dup(0)
stack ends

code segment use16
assume ds:data, ss:stack, cs:code
start: mov ax,data
mov ds,ax
lea dx,buf ;输入字符串
mov ah,10
int 21h
lea dx,crlf ;输出换行
mov ah,9
int 21h

mov bl,buf+1
mov bh,0 ;计算字符串实际字符个数
mov byte ptr buf+2[bx], '$' ;在串尾补入'$'
lea dx,buf+2
mov ah,9 ;输出字符串
int 21h

mov ah,4ch
int21h
code ends

end start
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式