DOS 功能调用指令

常用的dos功能调用:

指令 格式 作用 举例
键盘输入一个字符并显示(1号功能)

INT 21H

按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中

MOV AH,01H

INT 21H

键盘输入一个字符但不显示(8号功能)

MOV AH,08H

INT 21H

同1号功能调用,但字符不在屏幕上显示。 

MOV AH,08H

INT 21H

屏幕显示一个字符(2号功能)

MOV DL,'字符’

MOV AH,02H

ITN 21H

将置入DL寄存器中的字符在屏幕上显示输出。

MOV DL,'D'

MOV AH,02H

INT 21H

打印输出(5号功能)

MOV DL,'字符'

MOV AH,05H

INT 21H

将置入DL寄存器中的字符送打印机接口,打印输出。

MOV DL, ‘d’

MOV AH, 05H

INT 21H

显示一个字符串(9号功能)

MOV DX, 字符串的偏移地址

MOV AH, 09H

INT 21H

在屏幕上显示出DS:DX指出的缓冲区中字符串。

在使用9号功能调用时,应当注意以下问题:

① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。

② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。

 
字符串输入功能调用(0AH号功能调用)

MOV DX, 已定义缓冲区的偏移地址

MOV AH, 0AH

INT 21H

从键盘接收字符,并存放到内存缓冲区。

在使用0AH号功能调用时,应当注意以下问题:

① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的
② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。

 
 返回DOS操作系统(4CH号功能调用)  

MOV AH, 4CH

INT 21H

 终止当前程序的运行,并把控制权交给调用的程序,即返回DOS系统,屏幕出现DOS提示符,如“C: \ >”,等待DOS命令。  
 直接输入、输出单字符(6号功能调用)  

MOV DL, 输入/输出标志

MOV AH, 06H

INT 21H

 

执行键盘输入操作或屏幕显示输出操作,但不检查Ctrl+Break组合键是否按下。执行这两种操作的选择由DL寄存器中的内容决定。

① 当(DL)=0FFH时,执行键盘输入操作。若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。

② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。

 
 检查键盘的工作状态(0BH号功能调用)   

MOV AH, 0BH

INT 21H

 检查是否有键盘输入,若有键按下,则使AL=0FFH,若无键按下,则AL=00H。对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。  
 设置系统日期(2BH号功能调用)  

MOV CX, 年号

MOV DH, 月号

MOV DL, 日期

MOV AH, 2BH

INT 21H

 设置有效的年、月、日。当AL=0时,设置成功;当AL=0FFH时,设置失败。  
 设置系统时间(2DH号功能调用)  

MOV CH, 小时

MOV CL, 分

MOV DH, 秒

MOV AH, 2DH

INT 21H

 设置有效的时间。当AL=0时,设置成功;当AL=0FFH时,设置失败。  
       
posted @ 2013-03-27 00:07  Fienly  阅读(2991)  评论(1编辑  收藏  举报