汇编语言 键盘输入并显示时出现另外的输出字符

问题:每次按键输入后都会附带输出另一个字符,emu8086模拟时附带输出空格,cmd里面附带输出9,请问这是为什么?然后怎么解决呢??谢谢!抱歉没多少分给了欲实现功能:从... 问题:
每次按键输入后都会附带输出另一个字符,emu8086 模拟时附带输出空格,cmd里面附带输出9,请问这是为什么?然后怎么解决呢??谢谢!抱歉没多少分给了

欲实现功能:
从键盘输入一个字符,判断是不是ESC,如果是则退出,如果不是则继续输入

图片附件说明:
1、 如下,字母夹杂空格的是在emu8086模拟时的情况,字母是从键盘输入

2、字母间出现9的是通过masm6.15编译链接后生成的exe文件在cmd情况下的输出情况,每按一次都会附带输出一个9

代码:
code segment assume cs:codestart: mov ah,1 ;等待键盘输入 int 21h
cmp al,27 ;判断是否为“ESC”键 je exit ;若是“ESC”则跳转至“EXIT”处 mov ah,2 ;若不是则输出该字符 int 21h jmp startexit: int 20hcode endsend start
你好,谢谢你的解答,请问能麻烦解释一下为什么会出现问题中出现其它字符现象的原因吗?
展开
 我来答
碧血玉叶花
2015-05-26 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1725万
展开全部
这个程序能接受256个字符,如果你还想输入更多的字符,只需要把空间留的更多一点就行
data segment
keyboard db 256 dup (?) ;为输入的字符串预留空间
data ends
code segment
assume cs:code,ds:data
main proc far
mov ax,data
mov ds,ax
lea dx,keyboard ;这个中断能使你在输入时就能看见输入的字符
mov ah,9
int 21h
mov ah,1 ;这个中断是为了使程序暂停一下,不然你按回车键就立刻结束
int 21h
mov ah,4ch
int 21h
main endp
code ends
end main
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式