你的缓存区设置有误的,没有设置最大输入的字符数,默认为0,那当然不行。
0AH功能调用的时候要求将DS:DX指向缓冲区的第一个字节,并设置缓冲区的第一个字节以便指出所能容纳的最大字符的最大个数。正确如下~~~
DAT SEGMENT
NUMBERS DB 100 ;能存最大字符数,这里一定要设置
DB ? ;你输入的字符数,由计算机自动填写
DB 100 DUP(?) ;开始存放字符的段
DAT ENDS
STA SEGMENT STACK
DW 50 DUP(?)
STA ENDS
COD SEGMENT
ASSUME CS:COD,DS:DAT
START: MOV AX,DAT
MOV DS,AX
MOV AH,0AH
MOV DX,OFFSET NUMBERS ;取得存放数据的内存偏移地址,从键盘中输入
INT 21H
MOV AX,4C00H
INT 21H
COD ENDS
END START