1.什么是DOS功能调用
程序员调用DOS操作系统提供的各种编号子程序
包括设备驱动(基本I/O)、文件管理和其他(包括内存管理,置取时间、置取中断向量、终止程序等)。
2.调用方法
(1)根据需要调用准备入口参数,有部分功能不需要入口参数
(2)把功能调用号送AH寄存器
(3)发软中断指令“INT 21H”
例如:
mov dl,07h ;准备入口参数,当屏幕要显示的ASCII码为07h时
mov ah,2 ;置功能调用号,2号功能,使喇叭发出“嘟‘的一声
int 21h ;实施调用
大部分功能调用都有出口参数,部分功能没有,比如上述2号功能
特殊情况,4CH号功能,返回操作系统,其入口参数为AL,该参数不影响程序的结束码
例:
mov al,0 ;置退出码
Mov ah,4ch ;置功能号调用
Int 21h ;实施调用
基本I/O功能调用
1.带回显键盘输入(1号功能调用)
功能:从标准输入设备上读一字符,并将该字符回显在标准输出设备上.如果键盘无字符可读,则一直等待到有字符可读(即按键)
键盘,屏幕
入口参数:无
出口参数:AL=读到字符的ASCII码
说明:如果读到的字符是Ctrl+C或者Ctrl+Break,则结束程序
2.不带回显键盘输入(8号功能调用)
除了不显示外,和1号功能相同
3.直接键盘输入(7号功能调用)
功能:从标准输入上读一字符。如果键盘无字符可读,则一直等待到有字符可读(即按键)
入口参数:无
出口参数:AL=读到字符的代码
说明:
(1)不检查读到的字符是否是Ctrl+C或者Ctrl+Break,则结束程序
(2)不回显读到的字符
4.显示输出(2号功能调用)
功能:向标准输出设备写一字符。通常-屏幕
入口参数:DL=要输出的字符(ASCII码)
出口参数:无
说明:在显示输出时检查是否按Ctrl+C或Ctrl+Break键,如是则结束程序。
5.直接控制台输入输出(6号功能调用)
功能:直接控制台输入输出。键盘屏幕
入口参数:若dl=0ffh,表示输入,否则表示输出,DL=输出字符代码
出口参数:输入时,ZF=1表示无字符可读,ZF=0表示读到字符,AL=输入字符代码,输出时,无。
说明:
(1)在输入时,如无字符可读,并不等待
(2)不检查Ctrl+C或者Ctrl+Break键
(3)在读到字符时也不回显
(4)在输入时,如果AL=0,表示用户曾按过一个扩展键,在下次调用该功能时返回扩展键的扫描码
(5)在输出时,不解释制表符等特殊控制符
6.显示字符串(9号功能键)
功能:在标准输出上显示一个字符串。屏幕
入口参数:DS:DX=需要输出字符串的首地址,字符串以‘$’为结束标志
出口参数:无
说明:在显示输出时检查是否按Ctrl+C或者Ctrl+Break,则结束程序
7.输入字符串(0AH号功能调用)
功能:从标准输入上读一个字符串。键盘
入口参数:接收到的输入字符串在缓冲区中
说明:
(1)缓冲区第一字节为缓冲区最大容量,可认为是入口参数,缓冲区第二字节存放实际读入的字符(不包括回车符),可认为是出口参数的第一部分,第三部分开始存放接受的字符
(2)字符串以回车键结束,回车符是接受到的字符串的最后一个字符
(3)如果输入的字符超过缓冲区所容纳的最大字符数,则随后的输入字符被丢弃并且响铃,直到遇回车键为止。
(4)如果输入时按Ctrl+C或者Ctrl+Break,则结束程序
8.取键盘输入状态(OBH号功能调用)
功能:判别在标准输入设备上是否有字符可读
入口参数:无
出口参数:AL=0,表示无字符可读 AL=0ffh,表示有字符可读
说明:检查是否按Ctrl+C或者Ctrl+Break,则结束程序
9.清除输入缓冲区后再输入(OCH号功能调用)
功能:清除输入缓冲区,然后再执行某个输入功能
入口参数:AL=清除输入缓冲区后要执行的功能号
出口参数:决定于清除输入缓冲区后执行的功能
说明:清除缓冲区后执行的功能应是:01H、06H、07H、08H、或者0AH,如果不是这样,则不输入。例:若AL=0,则在清除输入缓冲区后,没有进一步的处理
10.打印输出(5号功能调用)
功能:向连接在第一个并行口上的打印机出一个字符
入口参数:DL=要打印的字符ASCII码
出口参数:无
说明:打印机可能不立即打印出指定的字符
Comments NOTHING