i386实模式-从软盘加载



我正在接近x86实模式编码,我在这里找到了一些示例代码:http://www.nondot.org/sabre/os/files/Booting/nasmBoot.txt

那篇文章中的第三个示例在实模式下使用BIOS调用加载内存中的几个软盘扇区,然后跳转到它们。它是一个简单的引导加载程序。它从第二扇区加载5个扇区。在第二个扇区(在第一个扇区的512字节之后),有一些用于打印一些文本的指令。

嗯,我编译了它并尝试了二进制文件,但是文本没有打印出来。你能重现这种功能障碍并告诉我如何解决它吗?

我感谢你的帮助,我为我的问题的平庸而道歉。(但我不知道哪里出了问题)。

如果使用qemu,则需要将图像填充为扇区大小的整数倍。

添加到image.asm:

times 512*2-($-$$) db 0

和汇编和运行:

nasm -f bin -o image.bin image.asm
qemu-system-i386 -fda image.bin

对于另一个模拟器,您可能必须填充到(1+5)*512的总长度,甚至填充到软盘的整个长度(1474560字节)。

我可以立即告诉你的一件事是,该代码并不能确保堆栈不在1000h:0000附近。

相关内容

  • 没有找到相关文章

最新更新