【BIOS中断】磁盘与 INT 13H
INT 13h是 x86 PC 架构中BIOS 提供的磁盘服务中断用于在实模式下对软盘、硬盘等存储设备进行底层读写操作。它是操作系统引导程序如 MBR、bootloader访问磁盘的唯一标准接口。一、基本概念一int 13H中断号0x13十进制 19调用方式int 0x13运行环境实模式Real Mode支持设备软盘Floppy、硬盘HDD、早期 USB 存储需 BIOS 支持寻址方式传统 CHS柱面-磁头-扇区最大 8.4 GB扩展 LBA逻辑块地址通过INT 13h ExtensionsAH42h支持大容量磁盘 BIOS 将INT 13h的中断向量地址存放在内存0x0000:0x004C处。二磁盘结构三磁盘布局磁盘的布局Disk Layout是指存储设备如硬盘、SSD、软盘上数据的物理或逻辑组织方式。不同层级硬件、BIOS、操作系统对磁盘布局的理解不同。以下是x86 PC 启动过程中的关键结构。1. 物理/传统布局CHS 模型早期硬盘使用CHSCylinder-Head-Sector模型柱面Cylinder所有盘片上相同半径的磁道集合磁头Head每个盘面对应一个读写磁头扇区Sector每个磁道被划分为多个扇区通常512 字节/扇区⚠️ 现代磁盘已不使用 CHS但 BIOS 和 MBR 仍模拟此模型以保持兼容。2. 逻辑布局LBA 模型现代磁盘使用LBALogical Block Addressing扇区编号从0 开始连续编号LBA 0 第一个扇区LBA 1 第二个扇区...总容量 (LBA 最大值 1) × 512 字节✅LBA 是操作系统和现代 BIOS 使用的标准。二、PC 磁盘关键布局启动相关一主引导记录MBR— LBA 0偏移大小内容0x000446 字节引导代码Bootstrap Code0x1BE64 字节分区表4 项 × 16 字节0x1FE2 字节签名0x55AA MBR 总共512 字节是磁盘的第一个扇区。分区表项结构16 字节偏移长度含义01状态0x80 可启动13起始 CHS已废弃41分区类型如 0x0B FAT32, 0x83 Linux53结束 CHS已废弃84起始 LBA关键124分区总扇区数✅现代系统只使用“起始 LBA”字段忽略 CHS。二分区布局以主分区为例假设一个硬盘有 1 个主分区LBA 地址内容0MBR1 N-1空闲或第二阶段 bootloaderN分区引导记录PBR / Volume Boot RecordVBRN1 ...文件系统数据如 FAT 表、根目录、簇数据N 分区起始 LBA来自 MBR 分区表三典型文件系统布局以 FAT32 为例在分区内部从 PBR 开始偏移相对分区起始内容0x000PBR512 字节• BPBBIOS Parameter Block• 引导代码• 签名0x55AA0x00DBPB每扇区字节数通常 5120x00EBPB每簇扇区数0x01CBPBFAT 表数量0x024BPB根目录起始簇0x02CBPB总扇区数32 位0x036BPB每个 FAT 表占用扇区数紧随 PBRFAT 表 1 FAT 大小FAT 表 2备份 FAT 大小根目录区之后数据区文件内容四Linux ext2/ext3/ext4 布局偏移内容0x000超级块Superblock• 文件系统元信息块大小、inode 数等0x400块组描述符表GDT后续块位图、inode 位图、inode 表、数据块 ext 系列使用块Block而非扇区通常 1K4K/块。五启动过程中的磁盘访问流程BIOS将MBRLBA 0加载到内存0x7C00MBR 代码扫描分区表找到活动分区状态0x80用INT 13h读取该分区的PBRLBA 分区起始 LBA到0x7E00PBR 代码解析 BPB定位 FAT 表/根目录读取第二阶段 bootloader如 GRUB 的core.img或 DOS 的IO.SYS第二阶段加载内核如vmlinuz、KERNEL.SYS三、通用寄存器约定寄存器用途AH功能号子功能选择CF返回状态CF0成功CF1失败AL/AX输入/输出参数依功能而定DL驱动器号关键AH功能编码00H —磁盘系统复位01H —读取磁盘系统状态02H —读扇区03H —写扇区04H —检验扇区05H —格式化磁道06H —格式化坏磁道07H —格式化驱动器08H —读取驱动器参数09H —初始化硬盘参数0AH —读长扇区0BH —写长扇区0CH —查寻0DH —硬盘系统复位0EH —读扇区缓冲区0FH —写扇区缓冲区10H —读取驱动器状态11H —校准驱动器12H —控制器RAM诊断13H —控制器驱动诊断14H —控制器内部诊断15H —读取磁盘类型16H —读取磁盘变化状态17H —设置磁盘类型18H —设置格式化媒体类型19H —磁头保护1AH —格式化ESDI驱动器驱动器号DL编码值设备0x00软驱 A:0x01软驱 B:0x80第一块硬盘主盘0x81第二块硬盘0xE0–0xFF可能用于 CD-ROM需 El Torito⚠️重要当 BIOS 加载 MBR 时会将启动驱动器号放入DL你的代码应直接使用它四、基础功能一复位磁盘系统AH 00hmov ah, 0x00 mov dl, 0x80 ; 硬盘0 int 0x13 ; CF0: 成功CF1: 失败AH错误码重置控制器清除错误状态建议在读写前调用提高兼容性二读取扇区AH 02h✅ 最常用mov ah, 0x02 ; 读扇区 mov al, 1 ; 读 1 个扇区 mov ch, 0 ; 柱面低8位 mov cl, 2 ; 扇区号1-63位7-6为柱面高2位 mov dh, 0 ; 磁头号 mov dl, 0x80 ; 驱动器硬盘0 mov bx, 0x7E00 ; ES:BX 目标缓冲区 int 0x13 jc error ; CF1 表示错误CHS 地址说明扇区号从 1 开始不是 0CL的位结构textCL [C9 C8 | S5 S4 S3 S2 S1 S0] 柱面高2位 扇区号1-63 LBA → CHS 转换假设 255 磁头/63 扇区sector (LBA % 63) 1; head (LBA / 63) % 255; cyl (LBA / 63) / 255; // CL (cyl 2) | sector; // CH cyl 0xFF;三写入扇区AH 03hmov ah, 0x03 ; 写扇区 mov al, 1 ; 写 1 个扇区 ; ... 其他参数同读 ... mov bx, buffer ; ES:BX 源数据 int 0x13⚠️注意很多 BIOS 禁止在 MBR 中写硬盘安全限制四获取驱动器参数AH 08hmov ah, 0x08 mov dl, 0x80 ; 查询硬盘0 int 0x13 ; 返回 ; AL 最后一个有效磁头号0-based ; CH 最大柱面低8位 ; CL [C9 C8 | max_sector] ; DH 最大磁头号同 AL ; DL 驱动器数量bit71表示硬盘用于动态探测磁盘几何结构五检测驱动器就绪AH 15hmov ah, 0x15 mov dl, 0x80 int 0x13 ; 返回 ; AH 状态 ; 00h: 不支持 ; 01h: 无介质 ; 02h: 可移动盘有介质 ; 03h: 固定盘硬盘 ; CX:DX 扇区总数仅当 AH03h 时有效可用于判断是否为硬盘五、扩展功能传统 CHS 无法访问 8.4GB 磁盘。扩展 INT 13h由 Enhanced Disk Drive Specification 定义使用 LBA 寻址。一读取扇区AH 42h1.定义磁盘地址包Disk Address Packet, DAPstruct DAP { uint8_t size; // 0x10 (16 字节) uint8_t reserved; // 0 uint16_t count; // 要读取的扇区数 uint16_t offset; // 目标缓冲区偏移ES:offset uint16_t segment; // 目标缓冲区段地址 uint64_t lba; // 起始 LBA64 位 };2. 使用示例; 定义 DAP在数据段 dap: db 0x10 ; size db 0 ; reserved dw 1 ; 读 1 个扇区 dw 0x7E00 ; offset dw 0x0000 ; segment dq 1 ; LBA 1 ; 调用扩展读 mov ah, 0x42 mov dl, 0x80 ; 驱动器 mov si, dap ; DS:SI - DAP int 0x13 jc error二检测扩展支持mov ah, 0x41 mov bx, 0x55AA ; magic mov dl, 0x80 int 0x13 ; 如果 CF0 且 BX0xAA55则支持扩展✅优势支持 64 位 LBA可访问超大磁盘理论上 2^64 扇区

相关新闻

2000-2025年各省政府公共服务注意力文本分析数据

2000-2025年各省政府公共服务注意力文本分析数据

数据简介 省级公共服务注意力,是依托文本分析技术,提取省级政府工作报告中教育、医疗、养老、就业等公共服务领域关键词并统计词频,结合语境梳理分布特征,量化判断省级政府在各公共服务领域的注意力投入程度、分配结构与侧重导向…

2026/7/4 1:38:19 阅读更多 →
绿色认证工具:深度学习模型的能效等级评估标准框架‌

绿色认证工具:深度学习模型的能效等级评估标准框架‌

一、能效评估框架的核心构成与标准‌ 能效评估框架旨在量化模型在训练和推理阶段的资源消耗,核心包括三级指标: ‌基础能耗指标‌: ‌计算复杂度(FLOPs)‌:衡量模型浮点运算次数,过高值预示低…

2026/7/4 0:50:34 阅读更多 →
2026年软件测试爆款内容解析:专业视角下的热度密码与行动指南

2026年软件测试爆款内容解析:专业视角下的热度密码与行动指南

一、热度最高的内容类型分析 2026年,软件测试爆款内容主要集中于三大类型,每类均以解决从业者实际痛点为核心,通过量化数据和实操案例吸引高阅读量与分享率: AI工具评测与实战教程:占垂直流量60%以上,例如…

2026/7/3 16:42:36 阅读更多 →

最新新闻

Transformers.js:重新定义浏览器端AI开发的颠覆性框架

Transformers.js:重新定义浏览器端AI开发的颠覆性框架

Transformers.js:重新定义浏览器端AI开发的颠覆性框架 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https://gitcode.com…

2026/7/4 19:41:34 阅读更多 →
Codex 用户集体暴怒!Token疯狂蒸发的 5 个原因终于找到了

Codex 用户集体暴怒!Token疯狂蒸发的 5 个原因终于找到了

最近不少朋友都有一个感受,就是codex怎么消耗变快了。之前是100刀的Pro会员随便用,根本用不完(额度那个时候有翻倍)。后续发现100刀的Pro开始不够用了,甚至到最后200刀的刀Pro也开始不够用了。就在2026 年 6 月底&…

2026/7/4 19:41:34 阅读更多 →
Python简史

Python简史

Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。 听过之后,朋友问我:好吧,我承认Python不错,但它为什么叫Python呢? 我不是很确…

2026/7/4 19:39:34 阅读更多 →
米游社自动签到工具:3分钟完成配置,轻松获取游戏奖励

米游社自动签到工具:3分钟完成配置,轻松获取游戏奖励

米游社自动签到工具:3分钟完成配置,轻松获取游戏奖励 【免费下载链接】MihoyoBBSTools Womsxd/AutoMihoyoBBS,米游社相关脚本 项目地址: https://gitcode.com/gh_mirrors/mi/MihoyoBBSTools 想要每天自动完成米游社签到,获…

2026/7/4 19:39:34 阅读更多 →
3步解决Navicat试用限制:macOS数据库开发者的终极方案

3步解决Navicat试用限制:macOS数据库开发者的终极方案

3步解决Navicat试用限制:macOS数据库开发者的终极方案 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 你是否也曾…

2026/7/4 19:33:32 阅读更多 →
蓝凌EIS平台SQL注入漏洞(CVE-2025-22214)深度剖析与实战复现

蓝凌EIS平台SQL注入漏洞(CVE-2025-22214)深度剖析与实战复现

1. 项目概述:一次针对企业协同平台的SQL注入漏洞深度剖析最近在安全圈里,蓝凌EIS智慧协同平台的一个SQL注入漏洞(CVE-2025-22214)引起了我的注意。这个漏洞出在fi_message_receiver.aspx这个接口上,攻击者甚至不需要登…

2026/7/4 19:33:32 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻