100 likes | 293 Views
5.5.6 DOS 和 BIOS 功能调用. DOS 及 BIOS 功能调用属于软件中断,即可用 INT n 指令调用的中断,它可分为三部分: ⑴ DOS 中断,占用中断类型号为 20H ~ 27H 和 2FH ,其余类型号保留。 ⑵ ROM BIOS 中断,占用中断类型号 10H ~ 1FH 。 ⑶ 自由中断,占用中断类型号 40H ~ FFH ,可供系统或应用程序设置开发的中断处理程序用。. 1 、 DOS 中断及功能调用. DOS 常用的 9 类中断( 20H ~ 27H 和 2FH )可分为两种:
E N D
5.5.6 DOS和BIOS功能调用 DOS及BIOS功能调用属于软件中断,即可用INT n指令调用的中断,它可分为三部分: ⑴ DOS 中断,占用中断类型号为20H~27H和2FH,其余类型号保留。 ⑵ ROM BIOS 中断,占用中断类型号10H ~1FH。 ⑶ 自由中断,占用中断类型号40H ~FFH,可供系统或应用程序设置开发的中断处理程序用。
1、DOS中断及功能调用 DOS常用的9类中断(20H~27H和2FH)可分为两种: ⑴ DOS专用中断。DOS专用中断是指INT 22H、 INT 23H、 INT 24H 3个中断,属DOS操作时专用,用户不要直接使用。 ⑵ DOS可调用中断。DOS可调用中断是指INT 20H、 INT 21H、 INT 25H、 INT 26H、 INT 27H和INT 2FH 6个中断。这6个中断都供用户直接调用,但都必须要满足一定的入口条件。其中:
① 磁盘读写中断。INT 25H、INT 26H分别用来读和写磁盘上的若干扇区,这实际上是两条BIOS调用。 ② 程序退出中断。INT 20H、INT 27H都为程序的退出命令。 ③ 假脱机打印文件中断。INT 2FH用来实现假脱机打印文件命令PRINT。 ④ 系统功能调用。又称为DOS功能调用,是指 INT 21H 中断。它是可供系统程序和应用程序调用的一个极其重要的中断,内含近百个子功能。
2、系统功能调用 1.系统功能调用方法 DOS启动成功后,INT 21H 的中断向量(中断处理程序的首地址)被初始化在中断向量表中,向量地址为84H87H的4个存储单元内。调用 INT 21H的方法如下: ⑴ 入口参数送相应的寄存器; ⑵ 子功能编号送AH; ⑶ 发出中断请求:INT 21H 2.常用系统调用子功能
⑴ 01H号调用(带回显的键符输入) 1 号子功能是从标准输入设备输入一个字符,并送入寄存器AL,不许入口参数。例如: MOV AH, 01H INT 21H 执行上述指令,系统将扫描键盘,等待有键按下,一旦有键按下,就将键值(相应字符的ASCII码值)读入,并送入AL寄存器,同时将这个字符显示在屏幕上。
⑵ 0AH号调用(字符串输入) 从键盘接收字符串到内存输入缓冲区,要求事先定义一个输入缓冲区,缓冲群诶第一个字节指出缓冲区的字符个数,不能为零。第二个字节保留已用作填写输入的字符实际个数。从第三个字节开始存放从键盘上接收的字符。调用时,要求DS:DX指向输入缓冲区的首地址。键入字符串以回车结束。 例如,从键盘输入一个小于50个字符的字符串数据。其程序设计方法是:
DATA SEGMENT BUF DB 50 DB ? DB 50 DUP(?) DATA ENDS CODE SEGMENT … MOV DX, OFFSET BUF MOV AH, 10 INT 21H … CODE ENDS
⑶ 02H号调用(字符输出显示) 2号功能是将一个字符(一个ASCII码值)输出到标准输出设备(即显示器或打印机)。入口参数为DL寄存器,寄存器DL中存放待输出的字符。例如: MOV DL, ‘A’ MOV AH, 2 INT 21H 即将字符“A”显示在屏幕上或输出到打印机。
⑷ 09H号调用(字符串输出) 9号功能调用是将缓冲区中的一组以“$”结束的字符串送标准输出设备输出(显示器或打印机)。调用前必须将输出缓冲区的首地址送DS:DX。例如: DATA SEGMENT BUF DB ‘HOW DO YOU DO ? $’ DATA ENDS CODE SEGMENT … MOV DX, OFFSET BUF MOV AH, 9 INT 21H … CODE ENDS
3、BIOS中断调用 在IBM-PC机的ROM存储器中包含一些基本输入输出子程序。这些基本输入输出子程序简称为BIOS。它们的功能与DOS中字符I/O功能相似,用户也可通过软件中断方式直接调用。由于BIOS提供的字符I/O功能直接依赖于硬件,因而调用它们比调用DOS字符I/O功能速度更快。例如: ☆键盘输入子程序。调用指令为 INT 16H ☆屏幕显示子程序。调用指令为 INT 10H ☆打印输出子程序。调用指令为 INT 17H