汇编输出问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 22:16:58
DATAS SEGMENT
N EQU 3
BUF DB N DUP(?)
PROMPT DB 'please input:',13,10,'$'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,PROMPT
MOV AH,09
INT 21H
MOV CX,N
LEA SI,BUF
L:
MOV AH,01
INT 21H
MOV [SI],AL
INC SI
LOOP L
LEA DX,BUF
MOV AH,09
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START

为什么输出后后面总是跟着一个 please input:
求达人..

LEA DX,BUF
MOV AH,09
INT 21H

DOS 9号功能的调用,要求字符串以'$'结束。程序会一直输出,直到遇到'$',所以就会输出后面的字符串。像这样用就可以了:
BUF DB N DUP(?),13,10,'$'

把提示串变量PROMPT中的内容改成别的,就不出现please input了。