1 / 10

5.5.6 DOS 和 BIOS 功能调用

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 )可分为两种:

sylvia
Download Presentation

5.5.6 DOS 和 BIOS 功能调用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5.5.6 DOS和BIOS功能调用 DOS及BIOS功能调用属于软件中断,即可用INT n指令调用的中断,它可分为三部分: ⑴ DOS 中断,占用中断类型号为20H~27H和2FH,其余类型号保留。 ⑵ ROM BIOS 中断,占用中断类型号10H ~1FH。 ⑶ 自由中断,占用中断类型号40H ~FFH,可供系统或应用程序设置开发的中断处理程序用。

  2. 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个中断都供用户直接调用,但都必须要满足一定的入口条件。其中:

  3. ① 磁盘读写中断。INT 25H、INT 26H分别用来读和写磁盘上的若干扇区,这实际上是两条BIOS调用。 ② 程序退出中断。INT 20H、INT 27H都为程序的退出命令。 ③ 假脱机打印文件中断。INT 2FH用来实现假脱机打印文件命令PRINT。 ④ 系统功能调用。又称为DOS功能调用,是指 INT 21H 中断。它是可供系统程序和应用程序调用的一个极其重要的中断,内含近百个子功能。

  4. 2、系统功能调用 1.系统功能调用方法 DOS启动成功后,INT 21H 的中断向量(中断处理程序的首地址)被初始化在中断向量表中,向量地址为84H87H的4个存储单元内。调用 INT 21H的方法如下: ⑴ 入口参数送相应的寄存器; ⑵ 子功能编号送AH; ⑶ 发出中断请求:INT 21H 2.常用系统调用子功能

  5. ⑴ 01H号调用(带回显的键符输入) 1 号子功能是从标准输入设备输入一个字符,并送入寄存器AL,不许入口参数。例如: MOV AH, 01H INT 21H 执行上述指令,系统将扫描键盘,等待有键按下,一旦有键按下,就将键值(相应字符的ASCII码值)读入,并送入AL寄存器,同时将这个字符显示在屏幕上。

  6. ⑵ 0AH号调用(字符串输入) 从键盘接收字符串到内存输入缓冲区,要求事先定义一个输入缓冲区,缓冲群诶第一个字节指出缓冲区的字符个数,不能为零。第二个字节保留已用作填写输入的字符实际个数。从第三个字节开始存放从键盘上接收的字符。调用时,要求DS:DX指向输入缓冲区的首地址。键入字符串以回车结束。 例如,从键盘输入一个小于50个字符的字符串数据。其程序设计方法是:

  7. DATA SEGMENT BUF DB 50 DB ? DB 50 DUP(?) DATA ENDS CODE SEGMENT … MOV DX, OFFSET BUF MOV AH, 10 INT 21H … CODE ENDS

  8. ⑶ 02H号调用(字符输出显示) 2号功能是将一个字符(一个ASCII码值)输出到标准输出设备(即显示器或打印机)。入口参数为DL寄存器,寄存器DL中存放待输出的字符。例如: MOV DL, ‘A’ MOV AH, 2 INT 21H 即将字符“A”显示在屏幕上或输出到打印机。

  9. ⑷ 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

  10. 3、BIOS中断调用 在IBM-PC机的ROM存储器中包含一些基本输入输出子程序。这些基本输入输出子程序简称为BIOS。它们的功能与DOS中字符I/O功能相似,用户也可通过软件中断方式直接调用。由于BIOS提供的字符I/O功能直接依赖于硬件,因而调用它们比调用DOS字符I/O功能速度更快。例如: ☆键盘输入子程序。调用指令为 INT 16H ☆屏幕显示子程序。调用指令为 INT 10H ☆打印输出子程序。调用指令为 INT 17H

More Related