汇编语言功能强,速度快,但它与DOS无接口,对BIOS中断服务程序的调用很不方便。C
语言提供了与DOS的接口的功能,能很方便的调用BIOS中断服务程序,完成一些用汇编语
言实现起来比较复杂的问题。这里介绍怎样用C语言实现对BIOS的调用。
一、原理
C语言和系统资源的接口包括一个称作REGS的联合类型,一个称作SREGS的结构类型,以
及通用8086软件中断接口函数int86和int86x。REGS联合类型定义寄存器ZX、BX、CX、
DX等和CFLAG:结构类型SREGS指定的是段寄存器ES、CS、SS、DS,这些定义都在头文件
DOS.H中,使用时按规定书写即可。
int86和int86x的用法如下:
#include
int int86(int intr_ num,union REGS inregs,union REGS
outregs)
int int86x(int intr_num,union REGS inregs,union REGS
outregs,struct SREGS segregs)
这两个函数的功能都是执行一个由参数intr_ num指定的8086软中断。在执行软中断之
前,两个函数都把inregs中的寄存器值存到各存储器中,另外,在执行软中断之前,
int86x把segregs.x.es和segregs.x.ds