在ARM linux上运行nasm程序

时间:2015-11-05 18:38:41

标签: assembly x86 nasm x86-emulation

我正在尝试用NASM自学装配编程。但是我只有一个带ARM处理器的Chromebook。我有用bunton运行的xubuntu。但是,如何设置x86仿真环境以使自己开始?我也希望能够使用洞察力调试器。

2 个答案:

答案 0 :(得分:2)

尝试bochs或qemu。

如果您只使用可能没有大量内存的Chromebook,您可能只想在模拟x86环境中运行一个非常小的Linux系统。在仿真的x86环境中不是完整的xubuntu GUI安装。

要学习x86,您应该从32或64位ASM开始,既可以是从C调用的函数,也可以是独立程序。 (要么是独立的,要么不与C标准运行时或库链接,要在asm中编写自己的_start,并进行自己的系统调用,或者只是在asm中编写main并结束来自ret的{​​{1}}来自您的程序。)

bochs有一个内置的调试器,但使用它更适合调试内核或boot-loader。 IDK有关Insight调试器的任何信息,但如果它可以进行远程调试,则本机运行它的ARM二进制文件,连接到要调试的目标,可能是有意义的。

可以写x86 asm你直接启动(而不是Linux映像),但是你只有BIOS调用可用,并且CPU将以16bit实模式启动,带有分段内存以及用于编写除了用于编写引导加载程序的所有废话基本没用。

答案 1 :(得分:1)

QEMU具有用户模式仿真功能,可用于在ARM Linux或任何其他受支持架构的组合上运行x86 Linux程序。