它是一个简单的非特定于操作系统的汇编程序,旨在与我的 PC 架构配合使用。由NASM的Linux版本编译。
我尝试将其插入 USB,当我在 BIOS 中选择从 USB 启动时,它确实尝试从 USB 启动。和沉默。硬件继续运行,但我的程序应该将字符打印到屏幕上。只是黑屏,左上角有一个闪烁的白色光标(我认为它属于BIOS)。
也许 BIOS 没有将我的"file"算作引导扇区。
这是USB内容(Win7的截图,不是英文,但你可以很容易地理解它是什么):
属性
最佳答案
几年前,我成功创建了一个可启动的 shell 模拟器,它应该从 USB 驱动器启动,我也多次陷入解决这个问题的困境,但为了实现这一点,你需要将 MBR 放入是驱动器第一个扇区的 Bootstrap ,具有特殊的引导签名,它的长度必须为 512 字节,从那里您可以引导驱动器上的任何其他扇区,其中将包含其余的可 Bootstrap 。因此,请确保您的引导加载程序代码正确并且位于驱动器的第一个扇区。
http://wiki.osdev.org/Bootloader
http://forum.osdev.org/viewtopic.php?f=1&t=20561
还要确保您的系统支持 USB 启动功能,您可以通过 BIOS 启动设置轻松找出它。
关于assembly - 如何从 USB 启动 512 字节引导加载程序 (ARM x86),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630714/