1

我正在尝试为汇编中的引导加载程序打个招呼。我正在关注本教程: http ://www.osdever.net/tutorials/view/hello-world-boot-loader

我搜索了一下,似乎人们说 gcc 不适用于编译程序集。所以我搜索并找到了flat assembler。当我尝试编译该示例时,它在第一行 [BITS 16] 处给了我一个错误。基本上它说的是“非法指令”。

这段代码需要什么类型的汇编器?

4

3 回答 3

1

我不知道 GCC 中的某些工具是否可以编译汇编程序(如果可以,是否可以编译为 16 位代码),但是您参考的站点推荐 NASM。你用 NASM 试过吗?

于 2012-09-15T17:12:06.120 回答
0

如果没有,请尝试删除 BITS 16 周围的方括号。

于 2020-02-21T21:45:12.943 回答
0

我只是把这条线注释掉了,它在 FASM 中工作。FASM 似乎自动默认为 16 位。编译后,它生成了一个同名的 BIN 文件。我将其重命名为 IMG 扩展,然后使用 VirtualBox 将其分配为软盘映像进行测试。工作得很好并且启动了。

只要您将此 BIN/IMG 文件写入第一个扇区的驱动器,它似乎就可以正常工作。我也使用了上述网站上的教程。

于 2015-09-03T08:28:50.483 回答