练习:缓冲区使用
DATAS SEGMENT
STR DB 'Please input a string:$'
buffer db 60;定义缓冲区长度
db 0 ;预留实际输入字符个数的技术单元
db 60 dup(0);设DS已是buffer的段基址
CRLF DB 0AH,0DH,'$' ;也不能直接显示
DATAS ENDS
STACKS SEGMENT
DB 200 DUP(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS ;放数据到ds段
MOV DS,AX
LEA DX,STR ;输入字符串的值,ah=9 显示输入字符串str
MOV AH,9
INT 21H
MOV AH,10 ;10号中断,接收输入字符串,此时DX为存放字符串的有效地址
LEA DX,buffer
INT 21H
LEA DX,CRLF ;作为换行功能
MOV AH,9
INT 21H
MOV AL,buffer+1 ;;获取字符串中字符的个数
ADD AL,2
MOV AH,0
MOV SI,AX
MOV buffer[SI],24H ;24h='&';
LEA DX,buffer+2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
MOV AL,BUF+1 ;;获取字符串中字符的个数
ADD AL,2
MOV AH,0
MOV SI,AX
MOV BUF[SI],24H ;24h='&';
LEA DX,BUF+2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START