BIOS中断调用

编辑
本词条由“匿名用户” 建档。
BIOS中断调是操作系统和应用程序用来调用IBMPC兼容计算机上的基本输入/输出系统软件的工具。传统上,BIOS调用主要由DOS程序和一些其他软件使用,例如引导加载程序。BIOS运行在x86CPU的实地址模式(RealMode)下,因此调用BIOS的程序要么也必须运行在实模式下,要么必须先从保护模式切换到实模式,然后再调用BIOS再切换回来。出于这个原因,在保护模式或长模式下使用CPU的现代操作系...

BIOS中断调用

编辑

BIOS 中断调是操作系统和应用程序用来调用 IBM PC 兼容计算机上的基本输入/输出系统软件工具。 传统上,BIOS 调用主要由 DOS 程序和一些其他软件使用,例如引导加载程序。 BIOS 运行在 x86 CPU 的实地址模式(Real Mode)下,因此调用 BIOS 的程序要么也必须运行在实模式下,要么必须先从保护模式切换到实模式,然后再调用 BIOS 再切换回来。 出于这个原因,在保护模式或长模式下使用 CPU 的现代操作系统通常不使用 BIOS 中间调试来支持系统功能,尽管它们在引导期间使用 BIOS 中间调试来探测和初始化硬件。 实模式有 1MB 内存限制,现代引导加载程序使用虚幻模式或保护模式(并在虚拟 8086 模式下执行 BIOS 中断调,但仅用于操作系统引导)最多访问 4GB内存。

在所有的计算机中,从接通电源的那一刻起,软件指令就控制着物理硬件(屏幕、磁盘、键盘等)。 在 PC 中,预加载在主板 ROM 中的 BIOS 在 CPU 重置后立即接管控制权,包括在加电期间、按下硬件重置按钮时或出现严重软件故障(三重故障)时 导致主板电路自动触发硬件复位。 BIOS 测试硬件并初始化其状态; 查找、加载和运行引导程序(通常是操作系统引导加载程序和历史 ROM BASIC); 并为机器上运行的软件提供基本的硬件控制,这些软件通常是一个操作系统(带有应用程序),但也可能是一个直接启动的单一软件应用程序。

对于 IBM 而言,他们提供了在对早期 IBM PC 型号(PS/2 之前)进行编程时完全使用其 BIOS 或直接使用硬件并完全避免使用 BIOS 所需的所有信息。 从一开始,程序员就可以根据每个硬件外设选择是否使用 BIOS。 IBM 强烈鼓励仅通过 BIOS INT 调用(和 DOS 服务调用)访问硬件的行为良好的程序的作者身份,以支持软件与具有不同xxx硬件的当前和未来 PC 型号的兼容性,但 IBM 理解对于某些软件开发人员来说 和硬件客户,要求用户软件能够直接控制硬件。 在某种程度上,这是因为 BIOS 服务没有公开所有硬件特性和功能的重要子集。 举两个例子(在许多例子中),MDA 和 CGA 适配器能够进行硬件滚动,PC 串行适配器能够进行中断驱动的数据传输,但 IBM BIOS 不支持这些有用的技术特性。

今天,新 PC 中的 BIOS 仍然支持 IBM 为 IBM AT(于 1984 年推出)定义的大部分(如果不是全部)BIOS 中断函数调用,以及许多更新的中断函数调用,以及对某些原始函数的扩展( 例如,扩展的参数范围)由其他各种组织和协作行业团体颁布。 这与类似程度的硬件兼容性相结合,意味着大多数为 IBM AT 编写的程序今天仍然可以在新 PC 上正确运行,假设更快的执行速度是可以接受的(这通常适用于所有游戏,但使用 基于 CPU 的时序)。 尽管通过 BIOS 中断访问的服务有相当大的局限性,但它们已被证明对技术变革非常有用和持久。

BIOS 调用的目的

编辑

BIOS 中断调试执行程序请求的硬件控制或 I/O 功能,将系统信息返回给程序,或两者兼而有之。 BIOS 调用目的的一个关键要素是抽象 - BIOS 调用执行一般定义的功能,而这些功能如何在系统的特定硬件上执行的具体细节封装在 BIOS 中并隐藏在程序中。

BIOS中断调用

因此,例如,想要从硬盘读取的程序不需要知道硬盘是 ATA、SCSI 还是 SATA 驱动器(或者在早期,是 ESDI 驱动器,或者 MFM 或 RLL 驱动器 也许是 Seagate ST-506 控制器,也许是几种 Western Digital 控制器类型中的一种,或者是另一个品牌的不同专有控制器)。 程序只需要识别它希望访问的驱动器的 BIOS 定义编号和它需要读取或写入的扇区地址,BIOS 将负责将此一般请求转换为所需的特定基本操作序列 通过连接到该驱动器的特定磁盘控制器硬件来完成任务。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196142/

(1)
词条目录
  1. BIOS中断调用
  2. BIOS 调用的目的

轻触这里

关闭目录

目录