1. 屏幕控制与BIOS中断的渊源
在x86架构的PC发展史上,BIOS中断服务程序(Interrupt Service Routines)扮演着硬件抽象层的关键角色。其中INT 10H作为视频服务中断,从早期的CGA、EGA显示适配器时代就已成为屏幕控制的事实标准。这个看似古老的机制至今仍影响着现代计算机的启动过程——当系统处于实模式(Real Mode)时,无论是传统BIOS还是UEFI兼容模式,INT 10H都是操作显示设备的唯一途径。
我曾在开发裸机程序时深刻体会到:理解INT 10H不仅是对历史的尊重,更是掌握计算机底层工作原理的必修课。比如在操作系统引导加载阶段,在没有加载任何显卡驱动的情况下,INT 10H是输出调试信息的唯一手段。通过直接调用这些固化在ROM中的例程,开发者可以用最少的代码实现文本输出、图形绘制甚至显存直接访问。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. INT 10H功能全景解析
2.1 基础功能调用规范
调用INT 10H前需通过寄存器传递参数:
- AH寄存器指定功能号(如0x00为设置显示模式)
- AL及其他寄存器承载具体参数
- 返回状态通过AX/FLAGS寄存器传递
典型调用序列示例(NASM语法):
assembly复制mov ah, 0x0E ; 功能号:电传打字输出
mov al, 'A' ; 待输出字符
int 0x10 ; 触发中断
2.2 核心功能分类
| 功能组 | 典型功能号 | 应用场景 |
|---|---|---|
| 显示模式控制 | 0x00 | 设置文本/图形模式 |
| 光标控制 | 0x01 | 调整光标形状与位置 |
| 字符输出 | 0x0E | 单字符打印(类似TTY) |
| 屏幕控制 | 0x06 | 向上滚动文本区域 |
| 显存访问 | 0x0F | 获取当前视频状态 |
注意:不同显卡芯片
