为什么如下汇编程序调用mov ah,9 无法在屏幕上系那是字符?

程序功能是从键盘输入字符串,然后显示datasegmentlimitdb10numbdb?msgdb10dup(0)dataendscodesegmentassumecs... 程序功能是从键盘输入字符串,然后显示
data segment
limit db 10
numb db ?
msg db 10 dup(0)
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset limit
mov ah,0ah
int 21h
mov bl,numb

mov bh,0
mov byte ptr msg[bx],'$'
lea dx,msg

mov ah,9
int 21h
mov ah,4ch

int 21h
code ends
end start
求解答
展开
 我来答
做而论道
高能答主

2013-11-19 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8808万
展开全部
10 号调用输入字符串之后,直接就用 9 号再显示字符串。

两者的字符串位置,重合了。因此,就认为没有显示。

在两者之间,加入回车换行,即可使两者分离,程序修改如下:

MOV DX, OFFSET LIMIT
MOV AH, 0AH
INT 21H

MOV BL, NUMB
MOV BH, 0
MOV BYTE PTR MSG[BX], '$'

MOV DL, 13
MOV AH, 2
INT 21H

MOV DL, 10
MOV AH, 2
INT 21H

LEA DX, MSG
MOV AH, 9
INT 21H
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式