使用 yasm 运行 .s 文件

Running .s file with yasm

提问人:Nico 提问时间:11/10/2023 最后编辑:Nico 更新时间:11/10/2023 访问量:37

问:

我想开始学习汇编。但是,有一个问题。我无法运行我的文件。

我尝试使用 and 之后,但我看到这个: 之后,我搜索并找到了这个: 在终端上使用这个:



.
但是,我看到了这个错误:

我该怎么办? 我在 Android 11 上运行它,使用 Termux 0.118.0 。处理器: Samsung Exynos Octa 7904.
yasm file.s -o run./runbash: ./run: Permission denied~$ yasm -felf64 file.s~$ ld file.o -o run~$ ./runld: file.o: error adding symbols: file in wrong format

Android 组装 终端 CPU binutils

评论

1赞 Jester 11/10/2023
您有一个 ARM CPU,但尝试使用 x86-64 代码。
1赞 Peter Cordes 11/10/2023
不同的 CPU 架构使用不同的机器代码。YASM 只能创建 x86(-64) 机器代码。三星 Exynos Octa 7904 具有 AArch64 CPU。因此,您需要一个 x86-64 模拟器来运行 ELF64 二进制文件。(此外,汇编语言是特定于操作系统的,例如,系统调用 ABI 取决于操作系统。一个告诉你使用的教程可能是使用 Linux 系统调用,与 Android 运行的内核相同,所以你想要一些模拟 Linux x86-64 环境的东西,也许是 QEMU-user)yasm -felf64
0赞 Nico 11/10/2023
谢谢。但是如何在 termux 上运行x86_64呢?
1赞 fuz 11/11/2023
@Nico ARM 是一种不同的架构,具有不同的汇编语言和指令集。如果您按照 ARM 教程(特别是 AArch64)进行操作,则您的代码应在手机上运行。
1赞 Jester 11/11/2023
.s“可以运行 arm”,但您需要将 aarch64 代码放入其中,而不是用于汇编。yasm

答: 暂无答案