汇编 DOS系统功能调用
一、系统功能调用方法
DOS系统功能调用的方法一般可分为以下几步:
- 设置所要调用功能的入口参数。
- 在AH寄存器中存入所要调用功能的功能号。
- INT 21H指令自动转入中断子程序入口。
- 相应中断子程序运行完毕,可按规定取得出口参数。
二、常用的DOS系统功能调用
1号DOS功能调用
- 功能:单字符输入。
- 执行操作:将键盘输入的字符的ASCII码值送AL寄存器,同时回显在屏幕上。
- 入口参数:无
- 出口参数:AL寄存器存放输入字符的ASCII码值
- 格式:
MOV AH,1 INT 21H
- 说明:在输入一个字符后,不需要键入回车。若只键入回车,则出口参数AL得到的是回车符的ASCII码值0DH。
2号DOS功能调用
-
功能:单字符输出。
-
执行操作:将以DL寄存器内容为ASCII码值的ASCII字符输出到屏幕上。
-
入口参数:DL=要显示字符的ASCII码值
-
出口参数:无
-
格式:
MOV DL,要显示的字符 MOV AH,2 INT 21H
-
举例:屏幕上输出字符“A”
MOV DL,41H MOV AH,2 INT 21H
9号DOS功能调用
-
功能:字符串输出。
-
执行操作:将DS:DX所指的以$字符结尾的一个字符串输出到屏幕上。
-
入口参数: DS:DX=要显示的字符串在内存中的首地址
-
出口参数:无
-
格式:
LEA DX,字符串变量名 MOV AH,9 INT 21H
-
举例:输出字符串’HELLO world’
string DB ‘HELLO world!’,’$’ …… LEA DX,string MOV AH,9 INT 21H
-
说明:要显示的字符串必须以’ $ ’作为结束标志, ’ $ ’不属于被显示的字符串。
10号DOS功能调用
- 功能:从键盘读入一个字符串,将其保存到DS:DX指定的内存缓冲区中。
- 缓冲区由3部分组成:
(1)第一字节定义缓冲区大小;
(2)第二字节用于系统回填实际输入字符的个数;
(3)第三字节开始保存键盘输入字符的ASCII码值。 - 入口参数:DS:DX=存放该字符串的输入缓冲区的首地址。
- 出口参数:实际输入字符个数保存在缓冲区第二字节的位置(不包括回车符) ,实际输入字符的ASCII码值(包括回车0DH)顺序保存在缓冲区第三字节开始的位置。
- 格式:
MOV AH,10 ;或0AH INT 21H
- 说明:
(1)可输入的字符个数最多为缓冲区第一字节内容减1,最少字符个数为0。
(2)输入以按“回车键”结束,并将回车字符(0DH)保存在输入字符的最后一个位置上。
4CH号DOS功能调用
-
功能:返回系统。
-
入口参数:AL=终止代码或无
-
出口参数:无。
-
格式:
MOV AH,4CH INT 21H