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

问题:
每次按键输入后都会附带输出另一个字符,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
你好,谢谢你的解答,请问能麻烦解释一下为什么会出现问题中出现其它字符现象的原因吗?

第1个回答  2015-05-26
这个程序能接受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本回答被提问者采纳
相似回答