大工《汇编语言程序设计》 第九章 BIOS和DOS中断
发布时间:2024-04-07 09:04:36浏览次数:23对 I/O 的程序请求DOSIBMDOS.COMDOSIBMBIO.COMBIOS外设汇编语言序设计主 题: 第九章 BIOS 和 DOS 中断(第 1-2 节)内 容:第九章 BIOS 和 DOS 中断 概述 本周学习 BIOS 和 DOS 中断,基本输入输出系统和 DOS 系统是计算机常备的固件和软件系统,有了这两种系统,不仅用户和开发商都能更好的管理和开发计算机外部设备,而且能更好的理解中断本身。本章内容也是后续课程得以展开的基础,因此有必要学好。第 1 节 BIOS 和 DOS 中断 1)BIOS 系统:在存储器系统中,从 0FE000H 开始的 8KB 的 ROM 中装入 BIOS 系统例行程序,也可以看做固件,因为驻留在 ROM 中的 BIOS 给 PC 系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要 I/O 设备的处理程序以及接口控制等功能模块来处理所有系统中断。2)DOS 系统:磁盘操作系统,是 PC 机上最重要的操作系统。它由两个 DOS 模块组成:IBMBIO.COM 和 IBMDOS.COM。DOS 系统提供了更多更必要的测试,使 DOS 操作比使用相应功能的 BIOS 操作更简易,DOS 对硬件的依赖更少。IBMBIO.COM 是一个输入输出设备处理程序,它提供了 DOS 到 BIOS 的低级接口,它完成了将数据从外设读入内存,或把数据从内存写入外设的工作;IBMDOS.COM 包括一个文件管理程序和一些处理程序,DOS 环境下运行的程序可以调用这些处理程序。为了完成 DOS 功能调用,IBMDOS.COM 把信息传送给 IBMBIO.COM,形成一个或多个 BIOS 调用,他们间的关系如下图: 3)两个系统中断区别:有时候,既可以选用 BIOS 中断,又可以选用 DOS 中断,但是 BIOS 中断第 1 页 共 4 页
能更接近硬件,在某些数据流量大的外设中断情况下就要用 BIOS 中断,而一般情况下 DOS 中断也更为常用。4)DOS 功能和 BIOS 功能都通过软件中断调用,中断调用前需要把功能号装入到 AH 寄存器,把子功能号装入 AL 寄存器,有些中断调用还需要 CPU 提供专门的调用参数。其基本过程如下: (1)将调用参数装入指定的寄存器中 (2)如需功能号,把它装入 AH (3) 如需子功能号,把它装入 AL (4) 按中断号调用 DOS 或 BIOS 中断 (5)检查返回参数是否正确 5)BIOS 中断类型:BIOS 分别为 CPU 中断类型(功能号 0 到 7),8259 中断类型(功能号 8 到F),BIOS 功能调用,及用户应用程序和数据表指针提供了不同的中断功能类型号,可以在参考书附录中找到完整的 BIOS 功能调用 6)DOS 中断类型:从功能号 20H 到 3F 都定义了 DOS 的中断类型号,其中 21H 是 DOS 功能调用,附录中能找到完整的 DOS 21H 功能调用说明第 2 节 键盘 I/O 和显示器 I/O 1) 断码和通码:键盘按下时,取得的字节称为通码,放开时取得的字节称为断码,通码最高位一般为 0,断码最高位一般是 12)字符码与扫描码:键盘上的每个按键都对应一个扫描码,从 01 到 83,从而根据扫描码就能唯一地确定哪一个键被按下;但是需要 BIOS 键盘处理程序将取得的扫描码转换成相应的字符码,一般是标准的 ASCⅡ 码。 3)BIOS 键盘中断:INT 16H 中断提供了基本的键盘操作,它的中断处理程序包括 3 个不同的功能,分别根据 AH(功能号)寄存器和内容来选择,它可以回送同时回送字符码和扫描码,这对使用功能键和变换键的时候是很重要的第 2 页 共 4 页
INT 16H 功能号 功能 返回参数 AH=0 从键盘读一个字符 AL=字符码,AH=扫描码 AH=1 读键盘缓冲区的字符 如果 ZF=0,AL=字符码AH=扫描码AH=2 取键盘状态字节 如果 ZF=1,缓冲区空AL=键盘状态字节 举例如下:读取键盘状态字节,并以十六进制打印出来 AGAIN: MOV AH,02H ;功能号 02H INT 16H ;BIOS 键盘功能调用 MOV BX,AX CALL BINIHEX MOV DL,0DH ;0DH 扫描码为“+或=” ASCⅡ 码为回车键 MOV AH,02H ;功能号 02H INT 21H ;DOS 键盘功能调用 JMP AGAIN 4)DOS 键盘功能调用: 在一般的键盘操作情况下,并不需要同时回送扫描码和字符码,这时候使用 INT 21H 功能调用更方便一些,而且 INT 21H 键盘功能调用能提供更多的键盘功能 INT 21H 功能号 功能 返回参数 返回参数 1 从键盘输入一个字符并回显 AL=字符 6 读键盘参数 DL=0FFH 若有字符可 取,AL=字符,ZF=0若无字符可取,AL=0,ZF=1第 3 页 共 4 页
7 从键盘输入一个字符不回显 AL=字符 …………说明:功能 1 从键盘输入一个字符并回显,当得到字符并已显示时,本功能就返回其 ASCⅡ 码;但是若该字符是扩展 ASCⅡ 字符,就需要调用本功能两次,第一次返回 0,第二次返回所按键的扫描码;如果要求程序能接收功能键或数字组合键,必须进行两次功能调用,第一次回送,第二次回送扫描码 ,其他功能这里不再详细介绍。 5)显示器 I/O:对应显示屏幕上的每个字符,存储器中由连续的两个字节表示,一个字节保存ASCⅡ 码,另一个字节保存字符属性,属性字节对单色显示和彩色显示都是有效的本周要求掌握的内容如下:基本概念:BIOS 系统特点、DOS 系统特点、两种系统的对比、BIOS 中断和 DOS 中断调用、BIOS 和 DOS 功能调用基本理论:了解 BIOS 中断和 DOS 中断的优点,层次结构,熟悉 BIOS 中断和 DOS 功能调用的过程和作用,熟悉键盘中断功能调用和显示器中断功能调用习题:1、BIOS 功能包括:(A)加电自检 (B)引导装入 (C)I/O 设备处理程序 (D)外设接口控制 ABCD2、DOS 键盘功能调用中的 01 功能:单字符输入并回显一定能得到 ASCⅡ 码。 (错)3、DOS 和 BIOS 功能调用正确的顺序是: (A)功能号装入 AH (B)调用参数装入指定寄存器 (C)按中断号调用 DOS 或 BIOS 中断 (D)检查返回参数是否正确 BACD第 4 页 共 4 页