我正在尝试为汇编中的引导加载程序做一个hello world。 我正在关注本教程: http://www.osdever.net/tutorials/view/hello-world-boot-loaderHello World引导加载程序
我搜索了一下,似乎有人说gcc不能编译程序集。于是我搜索并找到了平面组装者。当我尝试编译示例时,它在第一行[BITS 16]中给我一个错误。基本上它说'非法指令'。
此代码需要什么类型的汇编程序?
我正在尝试为汇编中的引导加载程序做一个hello world。 我正在关注本教程: http://www.osdever.net/tutorials/view/hello-world-boot-loaderHello World引导加载程序
我搜索了一下,似乎有人说gcc不能编译程序集。于是我搜索并找到了平面组装者。当我尝试编译示例时,它在第一行[BITS 16]中给我一个错误。基本上它说'非法指令'。
此代码需要什么类型的汇编程序?
我不知道GCC中的某个工具是否可以编译汇编程序(如果是,它是否可以编译为16位代码),但是您提到的站点建议使用NASM。你用NASM试过了吗?
我只是评论了这条线,它在FASM中工作。看起来FASM自动默认为16位。编译完成后,它会以相同的名称生成一个BIN文件。我将它重命名为IMG扩展,然后使用VirtualBox将其分配为软盘映像以对其进行测试。工作很好,开机。
只要你写这个BIN/IMG文件到驱动器上的第一个扇区它似乎工作正常。我也使用了上述网站上的教程。
是的,我没有看到,现在我不知道如何使用它。 – user1314075
我从来没有用过nasm。但man nasm告诉我,它只是根据输入(汇编程序)文件生成一个目标文件。语法看起来是“nasm -o objectfile assemblerfile.asm。包含你的第一行的文件([BITS 16])不会产生错误,所以它应该是你正在寻找的东西。 –
我试着把nasm和”nothing引导装载程序“从你的链接。它的工作原理。”nasm nothing.asm“创建一个目标文件”nothing“当我运行”文件没有“,我的操作系统报告”没有:x86引导扇区,代码偏移量0x0“。是你需要的,我现在可以把它写到软盘上并从中启动(虽然它什么也不做,显然)。 –