主题:关于缓冲区输入的问题
调用中断号AH=0AH,输入一个字符串,写了如下一个程序,定义缓冲区三个字段,先输入一个字符串,然后调用ah=9h将字符串输出。
定义最多可以输入19个字符,但输出有问题了,不知道怎么说清楚,可以运行程序,输入字符的个数分别<10,=10 >10,就可以看到问题了,为什么会这样?高手指点。
STACK SEGMENT STACK
DW 128 DUP(0)
STACK ENDS
DATA SEGMENT
BUF1 DB 20
COUNT1 DB ?
SFILE DB 20 DUP(0)
STR DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,BUF1
MOV AH,0AH
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
LEA DX,SFILE
MOV AH,9H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
定义最多可以输入19个字符,但输出有问题了,不知道怎么说清楚,可以运行程序,输入字符的个数分别<10,=10 >10,就可以看到问题了,为什么会这样?高手指点。
STACK SEGMENT STACK
DW 128 DUP(0)
STACK ENDS
DATA SEGMENT
BUF1 DB 20
COUNT1 DB ?
SFILE DB 20 DUP(0)
STR DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,BUF1
MOV AH,0AH
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
LEA DX,SFILE
MOV AH,9H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START