BIOS(Basic Input/Output System)称为基本输入输出系统。BIOS是一组底层的基础软件程序,通常用于执行设备驱动模块和字符级I/O操作。BIOS固化在ROM中,用户可用软中断指令INT n进行调用。
4.5.1 DOS功能调用
为了给程序员编写汇编语言源程序提供方便,MSDOS系统中设置了几十个内部子程序(见附录B),可供用户调用。调用时需要使用软中断指令:INT n,其中n为软中断调用的类型号。通过INT20H~27H指令,用户可实现对DOS中断的调用。下面对几个常用的中断调用做简要说明。
1)20H类中断
程序正常退出。使用前必须保证CS中含有程序段的段基址,将段基址传给DOS中的程序,以保证恢复时进入原有的结束出口。
2)21H类中断
DOS功能子程序的调用使用中断指令“INT 21H”,它共有80多个功能子程序,可以完成磁盘读写控制、文件管理、存储管理、基本输入输出管理等功能。
3)25H类中断
按扇区读盘。25H功能子程序控制DOS系统按扇区进行读盘、扇区数送CX、起始逻辑扇区号送DX,传送地址由DS:BX决定。
4)26H类中断
按扇区写盘。与25H类功能相同,只是将读改为写。
5)27H类中断
驻存结束。终止程序但保留驻存,驻存的内存最大区域为64KB。
在DOS功能子程序中,系统功能子程序调用(21类中断)是汇编语言编写的重要工具。调用系统功能子程序时,不必了解所使用设备的物理特性、接口方式及内存分配等,也不必编写烦琐的控制程序,给应用者带来了很大的方便。调用系统功能子程序时,需要用以下方式。
(1)传送入口参数到指定寄存器中
(2)调用的功能号送入AH寄存器中
(3)INT 21H
若子程序无入口参数,则只需要安排后两个语句。调用结束后,系统将出口参数送到指定寄存器,或从屏幕显示出来。下面选择部分常用的系统功能调用做简要说明。
1.带显示的键盘输入单字符(1号功能)
格式:MOV AH,01H
INT 21H
功能:按下任何一个键,将其字符的ASCII码送入AL中,并在屏幕上显示该字符。如果按下的是Ctrl+Break键,则中止程序执行。1号功能调用无入口参数、出口参数在AL中。
2.不带显示的键盘输入单字符(8号功能)
格式:MOV AH,08H
INT 21H
功能:同1号功能,但字符不在屏幕上显示。
3.键盘输入字符串(0AH号功能)
格式:MOV DX,缓冲区偏移量
MOV AH,0AH
INT 21H
功能:将字符串写入内存缓冲区中。
在使用0AH号功能调用时,应当注意以下几点。
(1)应当先在内存中建立一个缓冲区;缓冲区的第一个字节给定该缓冲区能存放的字节数,第二个字节留给系统填写实际键入的字符个数,从第三个字节开始存放键入的字符串,最后键入回车键表示字符串结束。
(2)设置的缓冲器容量应当多于希望键入的字符数,若字符数超过缓冲器容量,则后面输入的字符被略去。
(3)调用时,用DS:DX指向缓冲区的段基值:偏移量。