使用汇编语言(NASM)访问BIOS-ROM

nik*_*pad -1 assembly bios nasm

我正在开发一种用于教育目的的汇编语言的实验操作系统.是否可以从BIOS只读存储器读取并以任何方式存储它,是否有任何中断?它受到保护吗?

Ser*_*dev 7

是的,可以读取ROM BIOS内容 - 当您的代码不在某些受保护模式的操作系统(如Linux或Windows)下时 - 例如,当您处于启动模式时.那时ROM BIOS内容在0x000F0000地址的内存中 - 看一下IBM PC系统架构的内存映射.所以你可以直接从内存中复制你需要的一切.

接下来的问题是 - 如何保存数据.您可以使用BIOS int 13h低级磁盘访问功能将数据保存到磁盘.但是,它不是很方便,因为这些功能非常低级并且在磁盘数据访问级别工作,而不是在文件访问级别.因此,为了将数据写入文件,您应该编写自己的文件工作例程.

如果您只需要ROM BIOS内容用于学习,您可以使用BIOS转储实用程序 - 其中有很多.