bios调用和dos调用

上传人:第*** 文档编号:30973736 上传时间:2018-02-03 格式:DOCX 页数:12 大小:32.23KB
返回 下载 相关 举报
bios调用和dos调用_第1页
第1页 / 共12页
bios调用和dos调用_第2页
第2页 / 共12页
bios调用和dos调用_第3页
第3页 / 共12页
bios调用和dos调用_第4页
第4页 / 共12页
bios调用和dos调用_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《bios调用和dos调用》由会员分享,可在线阅读,更多相关《bios调用和dos调用(12页珍藏版)》请在金锄头文库上搜索。

1、一 概述BIOS 是 Basic Input Output System 的缩写,是固化在只读存储器 ROM 中的基本输入输出程序。BIOS 保存着微机系统最重要的基本输入输出程序、系统信息设置、开机自检程序和系统启动自举程序等,用来进行系统测试、初始化引导程序、对 I/O 设备进行控制。DOS 是 Disk Operation System(磁盘操作系统)的缩写,是用来控制和管理计算机的硬件资源、方便用户使用的程序集合。由于这些软件程序存放在磁盘上,而且主要功能是进行文件管理和输入输出设备管理,故称为磁盘操作系统。磁盘操作系统是人和机器交互的界面,用户通过操作系统使用和操作计算机。DOS 和

2、 BIOS 提供了大量的可供用户直接使用的系统服务程序。DOS 系统中的IO.SYS(基本输入输出模块)通过 BIOS 控制、管理外部设备。一般来说,用户可以通过用 4 种方式控制 PC 的硬件。(1) 应用高级语言中的语句进行控制。但高级语言中的 I/O 语句比较少,执行速度慢。(2) 应用 DOS 提供的一些功能服务程序来控制,可对显示器、键盘、打印机、串行通信等字符设备提供输入输出服务。DOS 提供了近百种 I/O 功能服务程序可供调用,这是一种高层次的调用,编程者无须对硬件有太深的了解。使用 DOS 调用,编程简单,调试方便,可移植性好。(3) 应用 BIOS 提供的功能程序来控制硬件

3、,这是低层次的控制,要求编程者对硬件有相当深入的了解。BIOS 调用速度快,适用于高速运行的场合,但使用BIOS 调用的汇编语言或 c 语言程序可移植性比较差另外,BIOIS 固化在 ROM 中,不依赖于 DOS 操作系统。(4) 直接使用汇编语言编程进行控制。要求编程者对 I/O 设备的地址、功能比较熟悉。二 中断和中断向量表1. 中断(Interrupt)a 中断的概念中断是指在计算机运行期间,由于程序的事先安排或者系统内发生的非寻常的或非预期的急需处理事件,使 CPU 暂时中止当前正在执行的程序而转去执行相应的事件处理程序的过程。事件处理程序执行完毕后又返回到被中止处继续执行,称为中断返

4、回。转去执行的程序称为中断服务程序,产生中断请求(IRQ 即 interrupt request)的设备或事件称为中断源。中端有优先级。CPU 接收到两个以上中断请求时,首先响应级别高的中断,对级别低的中那段暂不响应,称为“挂起” 。有些中断源产生的中断,可以用编程的方法使 CPU 不予理睬,称为“中断屏蔽” 。b 中断的分类根据中断源的不同,中断一般可分为两类:(1) 由外部设备接口向 CPU 的中断请求引脚发中断请求信号而产生的中断,称为硬中断。(2) 由执行中断指令而引起的中断,称为软中断。不管是硬中断还是软中断,每一种中断都有一个中断号与其对应。2. 中断向量表中断向量是指中断服务程序

5、的入口地址(包括段基址和偏移量) ,一个中断向量占据 4 字节空间,低位的两个字节存储偏移地址,高位的两个字节存储段基址。中断向量表是指中断服务程序的入口地址表,占据系统内存中最低端1K(00000H003FFH)字节的空间,它的作用是按中断类型号从小到大的顺序存储对应的中断向量,总共存储 256(00HFFH)个中断向量。在中断响应过程中,CPU 通过接口电路获取的中断类型号(中断向量号)计算对应的中断向量在表中的位置,并从中断向量表中获取中断向量(中断服务程序入口地址) ,然后将程序转向中断服务程序。在全部 256 个中断中,前 32 个(031)为硬件系统所预留。后 224 个可由用户设

6、定。下表给出了一些中断向量的序号及简单说明:中断号 功能 中断号 功能0 除法错误 19 重启动(Reboot)1 单步(调试) 1A 时钟服务2 非屏蔽中断 NMI 1B 断开控制(Ctrl+Break)处理程序3 断点 1C 用户时钟服务4 溢出 1D 视频显示参数表指针5 打印屏幕键和BOUND 指令1E 磁盘驱动器参数表指针6 非法指令错误 1F 图形符号模式表指针7 协处理器仿真 20 终止程序(DOS 1.0)8 时钟定时信号(18.2Hz) 21 DOS 服务9 键盘 22 程序终止处理程序A IRQ2(AT 系统中的级联) 23 Ctrl+C 处理程序BF IRQ3IRQ7 2

7、4 严重错误处理程序10 视频 BIOS 25 读盘11 设备环境 26 写盘12 常规内存变量 27 中止并驻留13 直接磁盘服务 28 DOS 保留14 串行 COM 口服务 2F 多功能处理程序15 其他服务 31 Windows 提供的 DPMI16 键盘服务 33 鼠标驱动程序17 并行口(LPT)服务 67 HIMEM.SYS 提供的 VCPI18 ROM BASIC 7077 IRQ8IRQ15三 BIOS 调用1. BIOS 调用简介BIOS 是由若干个子程序组成的,只不过这些子程序固化在系统板上的 ROM 中。这些子程序可以管理各种输入输出设备,如键盘、打印机、异步通信、时钟

8、等。还有一些用来管理磁盘、网络、图形显示器的基本输入输出系统,即磁盘 BIOS、网络 BIOS 和显示 BIOS 则一般固化在相应设备的硬件控制卡上。例如,驱动 VGA显示器的服务程序固化在显示卡上的 ROM 中,所以把它叫做视频 BIOS。这些卡上的 ROM 所占的地址空间,仍属于系统存储器。BIOS 是为了控制外部设备而编写的一系列子程序,用户若要控制这些设备,不必重新编写子程序,在自己的程序中调用 BIOS 提供的子程序就可以了,这便是 BIOS 中断调用。2. BIOS 调用的方法和例子BIOS 中每个为 I/O 设备服务的程序都有一个中断服务号与之对应。例如:视频 BIOS 的中断号

9、是 10H,磁盘服务的中断号是 13H等。BIOS 调用是通过软件中断来实现的。在中断调用前需要把功能号装入 AH寄存器,把子功能号装入 AL 寄存器,除此之外,通常还需在 CPU 寄存器中提供专门的调用参数。一般来说,调用 BIOS 功能时,有以下 5 个基本步骤:(1) 把调用参数装入指定的寄存器中;(2) 如需功能号,把它装入 AH;(3) 如需子功能号,把它装入 AL 或 BL;(4) 按中断号调用 BIOS 中断;(5) 检查返回参数是否正确。例如:下面的程序段是用汇编语言设置显示器显示方式的视频 BIOS 调用。说明:视频 BIOS 的调用号是 10H,设置视频方式的功能号是 00

10、H。MOV AH,0 ;设置视频方式的功能号送入 AHMOV AL,12H ;所需参数送 AL,12H 对应的显示方式是 640*480,16 色INT 10H ;进行视频 BIOS 调用上面的程序段在 C 语言中利用伪变量也能实现:_AH=0;_AL=0X12;geninterrupt(0x10);其中 geninterrupt()是 dos.h 中定义的一个函数,用来产生一个软中断,需要一个中断号作参数。其原型是:void geninterrupt(int intr_num);有些 BIOS 调用会产生一些返回信息,比如调用的结果、调用是否成功或错误代码信息,这些均称为出口参数存储在指定的

11、寄存器中。例如:读取当前光标处字符(视频 8 号功能)的调用,出口参数在 AL 中。C 程序段是:char c;_AH=8; /功能号_BH=0; /显示页号geninterrupt(0x10);c=_AL; /中断后,寄存器 AL 中存有字符的 ASCII 码下面是 BIOS 调用的一个完整例子:从键盘读入一个字符。键盘 I/O 中断调用号是 16H,该调用有三个常用功能,功能号分别是0,1,2.使用时必须将功能号放在 AH 中。功能号:0:从键盘读取字符1:读键盘状态2:读键盘标志本例需要调用 0 号功能,出口参数是 AH=扫描码,AL=ASCII 码。c 程序代码是:#include#i

12、ncludeint main() char c;_AH=0;geninterrupt(0x16);c=_AL; /AL 中存储的是字符的 ASCII 码printf(“%cn”,c);return 0;四 DOS 调用MS DOS 操作系统为程序设计者提供了若干个可以直接调用的软中断处理程序,每一个中断处理程序完成一个特定的功能操作,程序员可根据需要调用它们。DOS 的中断处理程序的主要功能如下:(1) 磁盘的读写控制。(2) 内存管理、文件操作和目录管理。(3) 基本输入输出(对键盘、打印机和显示器等)控制,日期、时间管理等。1. DOS 调用简介DOS 调用和 BIOS 调用的方法基本相同

13、,但功能却不完全相同。BIOS 只提供了一些最基本的输入输出服务,没有提供对文件、目录和内存的管理,而 DOS 调用的主要内容是文件管理,它提供的是一些以文件形式进行输入输出的高层管理功能。注意:有些 DOS 中断服务和 BIOS 具有看似相同实则不同的功能,例如:BIOS 和 DOS 都可以读写磁盘,但操作方式却不相同:BIOS 是直接对磁盘扇区进行读写;而 DOS 却用文件形式对磁盘读写,用户不需要知道系统内部对山区是怎样操作的。再例如:BIOS 的 INT 10H 的 0AH 功能调用和 DOS 的 INT 21H 的 02 和 09H 功能调用都是在屏幕上显示字符,但 BIOS 仅限于

14、文本方式下,而 DOS 在图形方式下也同样可用。又例如:DOS 也提供了标准输入输出设备。但这些设备可以重定向,而 BIOS 却不能。实际上,有些 DOS 调用本身就是通过调用 BIOS 的功能来实现自己的功能的,因此 DOS 调用速度低于 BIOS 调用。但 DOS 调用比 BIOS 调用更灵活,可移植性更好。BIOS 功能调用不受任何操作系统的约束,而 DOS 的中断功能仅在 DOS 环境下适用。另外,对有些功能(如对显示器的操作) ,BIOS 调用提供的功能比 DOS 调用更丰富。如果某些工作适用 DOS 调用无法实现,就需要适用 BIOS调用。下表是部分 DOS 软中断的功能,其中 I

15、NT 22H、INT 23H、INT 24H 不允许用户直接调用。INT 20H 的作用是终止正在运行的程序、返回 DOS 或父进程,该终止程序仅适用于扩展名为 COM 的命令文件,而不能用于扩展名为EXE 的可执行文件。软中断 功能 软中断 功能INT 20H 终止当前程序返回 INT 24H 出错处理(不允许直接调用)INT 21H DOS 系统服务 INT 25H 读磁盘INT 22H 终止地址(不允许直接调用) INT 26H 写磁盘INT 23H Ctrl+Break 处理程序(不允许直接调用)表中的 INT 21H 软中断是一个具有几十种功能(子程序)的大型中断服务程序,这些功能(

16、子程序)所对应的编号,称为功能号。每个功能子程序完成一种特定的操作和处理。2. DOS 调用的方法和例子对 INT 21H 软中断指令对应的功能子程序的调用称为 DOS 系统功能调用。调用系统功能子程序时。程序员不必了解所使用设备的物理特性、接口方式及内存分配等,也不必编写繁琐的控制程序,直接按下面的方法调用即可。(1) DOS 系统功能的调用方法INT 21H 系统功能调用的步骤如下:1) 入口参数送指定的寄存器或内存。2) 功能号送入 AH 中。3) 执行 INT 21H 软中断指令有少数子功能调用程序不需要入口参数,但大部分需要把参数送入指定位置。(2) DOS 系统功能调用的例子下面介绍的是常用的几个 DOS 系统功能调用。例子 1:1 号功能调用(键盘输入字符,有回显) 。功能:该调用的功能是,对按下的任何键,都将其对应的字符的 ASCII 码送入 AL 中,并在屏幕上显示该字符。如果按 Ctrl + Break 组合键,则终止程序执行。1 号功能调用无须入口参数,出口参数在 AL 中。#i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号