首页 > 解决方案 > 使用 Qemu 进行裸机 X86 组装

问题描述

你能帮我理解使用 Qemu 加载 bin 时的引导流程吗?如果我们考虑一个简单的程序,例如将 ascii 写入 VGA 内存,那么当我们调用时,bin 会加载到哪里

qemu-system-i386 -drive 'file=my_image.bin,format=raw' -serial mon:stdio -smp 2

根据我的理解,找到具有魔术模式 0xAA55 的有效引导扇区的 bios 将该扇区加载到 0x7c00。Qemu 是否真的将 bin 复制到 HDA 的这个引导扇区中?

我在许多教程中看到,使用 0x7c00 作为加载地址配置的链接描述文件用于生成精灵。然而,这个精灵被转换为一个 bin 并传递给 qemu。那么,真的需要 0x7c00 的加载地址吗?它可以是链接描述文件中的任何其他值吗?

标签: cassemblyqemulinker-scriptsx86-emulation

解决方案


推荐阅读