前言:学习DOS系统调用功能
单字符输入(1号功能调用)
格式:
1 | mov ah,1 |
功能:等待用户从键盘输入一个字符,并将字符的ASCII码送入AL寄存器中,同时将该字符在显示器上显示
说明:该调用不需要按Enter键结束
单个字符显示(2号功能调用)
格式:
1 | mov ah,2 |
功能:在屏幕当前位置显示DL寄存器中的字符,并将光标后移一格(将要显示字符经过OR DL,30H
就是ASCII码的形式)
异步通信口输入(3号调用)
格式:
1 | mov ah,3 |
功能:等待从标准异步通信接口输入一个字符,并送入AL中
异步通信口输出(4号调用)
格式:
1 | mov ah,4 |
功能:将存入DL中的字符输出到标准异步通信接口去,初始异步通信接口方同上
打印输出(5号调用)
格式:
1 | mov ah,5 |
功能:将存于DL中的字符输出到打印机去
字符串输出(9号调用)
格式:
1 | mov ah,9 |
功能:将当前数据区DS:DX所指向的以$结尾的字符串送显示器上显示
字符串输入(10号调用)
格式:
1 | mov ah,10 |
功能:从键盘接受一个字符串,并存于用户定义的输入缓冲区内
该调用要求输入缓冲区要按规定的格式定义,且一定要定义在当前数据段中,其缓冲区的格式定义如下:
1 | buf db ,n |
在上述定义的输入缓冲区内,第一个字符表示缓冲区能容纳的字符个数,第二个字节表示保留一个字节单元,由系统自动存入用户从键盘输入的字符的个数,(实际输入的字符个数,且不包括”回车”符),从第三个字节开始存放用户从键盘输入的字符的ASCII码(包括”回车”符),当实际输入的字符个数小于缓冲区的大小,缓冲区的其余字符填0;当实际输入的字符个数大于缓冲区的大小时,则多余的字符丢失且扬声器发出警示音
返回DOS调用(4CH号功能调用)
格式:
1 | mov ah,4ch |
功能:4CH号功能调用结束当前正在执行的程序,返回DOS系统。无入口参数
日期设置调用(2BH号功能调用)
2BH号功能调用用来设置系统有效日期。调用时寄存器CX中必须有一个有效年份(19082099), DH存放月份(0112), DL存放日期(1~31)
读取日期调用(2AH号功能调用)
2AH号系统功能调用用于系统当前日期读取到CX和DX寄存器中,是2BH号调用的逆过程,无参数入口
执行后年号送入CX中,月份和日期送入DX中
时间设置调用(2DH号调用)
2DH号系统功能调用设置系统时间
入口参数:有效时间送入CX和DX中,其CH存放时(023), CL存放(059), DL存放百分秒(0~99)
如果设置成功,则将AL清0,否则将0FFH(-1)送入AL
读取时间(2CH号)调用(2CH号功能调用)
2CH系统功能调用将当前的系统时间读入CX和DX中,是2DH调用的逆过程,无参数入口