一道汇编语言的题目,求大神帮忙解答 90

根据段中200字节长度的字节型变量MYDATA用于保存用户从键盘输入的字符。试编写一个程序。用户通过键盘逐一输入字符,输入的字符在显示器上显示后送MYDATA中保存。注意... 根据段中200字节长度的字节型变量MYDATA用于保存用户从键盘输入的字符。试编写一个程序。用户通过键盘逐一输入字符,输入的字符在显示器上显示后送MYDATA中保存。注意,当输入的字符是0-9之间的数字时需要将其以“*”代替后再显示,保存,输入的字符是$时结束程序运行,返回DOS。
求看到的大神帮忙想想,求正确的程序输出最后附加解释 感激不尽
展开
 我来答
可轩163
2014-06-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:4824
采纳率:88%
帮助的人:1876万
展开全部

以下是我编的程序,上机运行过,正常。

运行情况截图如下:

 

 

若将程序返回DOS的语句改为 int 3  ,可查看保存于缓冲的键入字符,如以下截图所示:

 

若采纳,可将asm 源文件、编译链接所得exe 文件发到提问者邮箱。

百度网友9045b38
2014-06-19 · TA获得超过1972个赞
知道小有建树答主
回答量:984
采纳率:90%
帮助的人:549万
展开全部
;MASM 5.0编译通过,运行无误。
data segment
m0 db 0dh,0ah
MYDATA DB 200 DUP(0)
COUNT db 0
m1 db 0ah,0dh,"Please input :$"

data ends
code segment
assume cs:code, ds:data
main proc far
begin:
push ds
mov ax,0
push ax
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET MYDATA
MOV CX,0
mov ah,9
mov dx,offset m1
int 21h
next:
mov ah,7
int 21h
cmp al,'$'
je disp
MOV DL,AL
CMP AL,'0'
JB NO
CMP AL,'9'
JA NO
MOV DL,'*'
NO:
MOV [BX],DL
INC BX
MOV AH,2
INT 21H
INC CX
CMP CX,200
JE DISP
JMP NEXT

disp:
MOV AL,'$'
MOV [BX],AL
MOV AH,09
MOV DX,OFFSET m0
INT 21H

R_MAIN:
ret
main endp
code ends
end begin
追问
我运行了他说 
A2006 错误 begin:符号没有定义
运行不了
追答
我编译没有问题呀。你的编译器是MASM吗?

E:\masm>m 2014
E:\masm>echo off
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
Object filename [2014.OBJ]:
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
50862 + 450402 Bytes symbol space free
0 Warning Errors
0 Severe Errors
Microsoft (R) Overlay Linker Version 3.60
Copyright (C) Microsoft Corp 1983-1987. All rights reserved.
Run File [2014.EXE]:
List File [NUL.MAP]:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
File cannot be converted
E:\masm>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式