1.了解INT 21H的09H号中断调用(输出字符串)
① LEA DX,字符串的开头 或 MOV DX,OFFSET字符串的开头
② MOV AH,09H
③ INT 21H
2.在定义字符串的时候要在末尾加上'$'作为字符串的结束标志。
3.了解INT 21H的0AH号中断调用(输入字符串)
① LEA DX,字符串的开头 或 MOV DX,OFFSET字符串的开头
② MOV AH,0AH
③ INT 21H
4.在定义内存空间存储字符串时,类似于定义C语言的数组
5.源代码:
DATA SEGMENT
INPUT DB "Please input a string: ",'$'
OUTPUT DB "Your input is: ",'$'
BUFFER DB 20 ;预定义20字节的空间
DB ? ;待输入完成后,自动获得输入的字符个数
DB 20 DUP(0)
CRLF DB 0AH, 0DH,'$'
DATA ENDS
STACK SEGMENT STACK
DW 20 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START:
MOV AX, DATA
MOV DS, AX
LEA DX, INPUT ;打印提示输入信息
MOV AH, 09H
INT 21H
LEA DX,BUFFER ;接收字符串
MOV AH, 0AH
INT 21H
MOV AL, BUFFER+1 ;对字符串进行处理
ADD AL, 2
MOV AH, 0
MOV SI, AX
MOV BUFFER[SI], '$'
LEA DX, CRLF ;另取一行
MOV AH, 09H
INT 21H
LEA DX, OUTPUT ;打印提示输出信息
MOV AH, 09H
INT 21H
LEA DX, BUFFER+2 ;输出输入的字符串
MOV AH, 09H
INT 21H
LEA DX, CRLF ;另取一行
MOV AH, 09H
INT 21H
MOV AH, 4CH ;返回DOS系统
INT 21H
CODE ENDS
END START
6.程序输出
7.有趣的是在汇编语言中字符串输入的结束是以回车键,空格键不起结束作用。