首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >i386实数模式-从软盘加载

i386实数模式-从软盘加载
EN

Stack Overflow用户
提问于 2013-03-29 00:34:25
回答 2查看 532关注 0票数 2

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

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

好吧,我编译了它并尝试了二进制,但是文本没有打印出来。你能重现这个功能障碍并告诉我如何修复它吗?

我感谢您的帮助,并为我的问题的平淡无奇道歉。(但我不知道哪里出了问题)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 03:06:23

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

在image.asm的末尾添加以下内容:

代码语言:javascript
复制
times 512*2-($-$$) db 0

并使用以下命令进行组装和运行:

代码语言:javascript
复制
nasm -f bin -o image.bin image.asm
qemu-system-i386 -fda image.bin

使用另一个模拟器,您可能需要填充到(1+5)*512的总长度,甚至填充到一个软盘的全长(1474560字节)。

票数 3
EN

Stack Overflow用户

发布于 2013-03-29 00:45:06

我可以直接说的一件事是,该代码不能确保堆栈不在1000h:0000附近。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15687318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档