我一直在试图弄清楚如何在汇编中从硬盘驱动器中打开文件。我想在不使用 DOS 中断或任何需要操作系统的情况下执行此操作,因为我正在尝试构建一个简单的操作系统。当然,我对 BIOS 中断很好。
user1327203
问问题
1020 次
2 回答
2
操作系统提供了两组您必须模拟才能访问文件的功能:
- 一个设备驱动程序,可以读取和写入原始数据(在你的情况下,到/从磁盘)
- 理解文件结构和抽象如何读取部分的设施库;这会调用驱动程序来执行实际的 I/O。
您也许可以调用 BIOS 调用来模拟坏的设备驱动程序;通常真正的驱动程序很复杂,以确保效率和良好的错误恢复,而 BIOS 例程根本不这样做。
但是你会发现自己很难做的是模拟“文件访问”库。现代文件系统以相当复杂的方式将文件存储在磁盘上,以最大限度地减少访问时间,同时允许文件分布在大部分磁盘上。
如果您坚持这样做,您最好阅读您打算访问的任何文件系统(Linux?Windows?)的文件系统结构。准备好发现这些文档相对于真实操作系统是不完整的和过时的。
于 2012-06-14T02:43:03.880 回答
1
以下是仅使用 BIOS 访问 FAT12/16/32 的方法。_boot\BOOT12.ASM
并且_boot\BOOT16.ASM
分别是 FAT12 和 FAT16 引导扇区,可以从引导磁盘的根目录加载和运行名为 .COM 或 .EXE 的标准程序STARTUP.BIN
。这些引导扇区是为 NASM 编写的。在stdio\FAT.c
.
于 2012-06-14T05:56:16.287 回答