DOS功能调用
- 考试范围
- 1、2、9、0AH、4CH号功能调用
- 1号功能调用:用于从键盘中输入一个字符,注意,输入字符值为ASCII码
MOV AH,1
INT 21H
ASCII值被保存在AL寄存器中,请务必注意保护数据,笔者吃过亏。 - 2号功能调用:用于在显示器上显示一个字符
MOV DL,待显示字符的ASCII码
MOV AH,9
INT 21H - 9号功能调用:输出字符串
MOV DX,待显示字符串的首偏移地址
MOV AH,9
INT 21H
注意,该字符串必须以美元结尾。如果,中间有,需要逐个输出。 - 10号功能调用:输入字符串
MOV DX,数据区的首偏移地址
MOV AH,10
INT 21H - 4CH号功能调用:返回DOS
MOV AH,4CH
INT 21H
代码展示:
DATA SEGMENT
INPUT DB "Please input a string: ",'$'
OUTPUT DB "Your input is: ",'$'
BUF1 DB 20
STR1 DB ?
DB 20 DUP(0)
BUF2 DB 20
STR2 DB ?
DB 20 DUP(0)
STR3 DB 'MATCH$'
STR4 DB 'NO MATCH$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
STA:MOV AX,DATA
MOV DS,AX
LEA DX, INPUT
MOV AH, 09H
INT 21H
MOV AH, 0AH
LEA DX,BUF1 ;接收STRING1
INT 21H
MOV DL, 0AH ;另取一行
MOV AH, 2
INT 21H
LEA DX, INPUT
MOV AH, 09H
INT 21H
MOV AH, 0AH
LEA DX,BUF2 ;接收STRING2
INT 21H
MOV DL, 0AH ;另取一行
MOV AH, 2
INT 21H
LEA SI,STR1+1
LEA DI,STR2+1
MOV AL,[STR1]
CMP AL,[STR2]
JNE AA
MOV CL,AL
INC CL
MOV CH,0
CLD
LOOP BB
MOV AH, 4CH ;返回DOS系统
INT 21H
AA: LEA DX,STR4
MOV AH,09H
INT 21H
MOV AH, 4CH ;返回DOS系统
INT 21H
BB: MOV AL,[SI]
CMP AL,[DI]
JNE AA
INC SI
INC DI
CMP CX,1
JE CC
LOOP BB
MOV AH, 4CH ;返回DOS系统
INT 21H
CC: LEA DX,STR3
MOV AH,09H
INT 21H
MOV AH, 4CH ;返回DOS系统
INT 21H
CODE ENDS
END STA