运行 nasm ARM 上的程序 linux

Running nasm program on ARM linux

我正在尝试用 NASM 自学汇编编程。但是我只有一台带 ARM 处理器的 Chromebook。我有 xubuntu 运行 和 crunton。但是,我该如何设置 x86 仿真环境来开始呢?我也希望能够使用洞察调试器。

试试 bochs 或 qemu。

如果您只使用 chromebook,可能没有很多 RAM,您可能只想在模拟的 x86 环境中 运行 一个非常小的 Linux 系统。在模拟的 x86 环境中没有完整的 xubuntu GUI 安装。

要学习 x86,您应该从 32 位或 64 位 ASM 开始,无论是用于从 C 调用的函数,还是作为独立程序。 (要么真正独立,你不使用 C 标准 运行 时间或库 link,然后在 asm 中编写你自己的 _start,然后进行你自己的系统调用,或者只写main 在 asm 中并以来自 mainret 结束你的程序。)

bochs 有一个内置调试器,但使用它更适合调试内核或引导加载程序。 IDK 关于 Insight 调试器的任何信息,但如果它可以远程调试,运行将它的 ARM 二进制文件本地化,连接到您要调试的目标,可能是有意义的。

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

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