DATAS SEGMENT
BUF DB 20,?,20 DUP(0);第一个20表示容量,第二个表示字符串实际长度,第三部分就是这些数都置为0
CRLF DB 0AH,0DH,'$';表示换行,结尾一定要加'$'表示字符串结束
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,BUF;用dx记录buf的偏移地址
MOV AH,0AH
INT 21H
;这一部分就是给字符串末尾加上结束符'$'
MOV AL,BUF+1;表示将输入的字符数存到al中
ADD AL,2;因为缓冲区前两个是用来记录最大可键入字符数和时间输入字符数的,所以要再加上
MOV AH,0;因为前面改变过ah,置零
MOV SI,AX
MOV BUF[SI],'$';在字符串末尾加上结束符
LEA DX,CRLF;输出换行
MOV AH,09H
INT 21H
LEA DX,BUF+2;dx获得buf字符串首地址
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
微机实验1 键盘输入输出字符串
最新推荐文章于 2023-11-23 19:29:32 发布