I/O 端口
CPU 通过端口与外设通信。x86 有独立的 I/O 地址空间(64KB)。
端口读写指令
|
|
中断向量表(IVT)
内存 0000:0000 处的 1KB 空间,存放 256 个中断处理程序地址:
| 中断号 | 功能 |
|---|---|
| 00h | 除零错误 |
| 08h | 定时器中断 |
| 09h | 键盘中断 |
| 10h | BIOS 显示服务 |
| 13h | BIOS 磁盘服务 |
| 21h | DOS 系统调用 |
中断处理流程
- CPU 收到中断请求
- 保存 FLAGS、CS、IP 到栈
- 从 IVT 查找处理程序地址
- 跳转到处理程序
IRET返回
自定义中断处理程序
|
|
BIOS 中断
| 中断 | 功能号 | 用途 |
|---|---|---|
| INT 10h | AH=00h | 设置显示模式 |
| INT 10h | AH=0Eh | 显示字符(TTY) |
| INT 13h | AH=02h | 读磁盘扇区 |
| INT 16h | AH=00h | 读取键盘按键 |
总结
中断是硬件与软件的桥梁。理解中断机制,你就掌握了操作系统与硬件对话的语言。
下一篇:《多模块程序设计与混合编程:C 语言调用汇编》