You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Termux(Android 11)中用Yasm运行.s汇编文件遇问题求助

解决Termux下ARM架构汇编编译运行问题

问题原因拆解

  • 权限拒绝问题:yasm file.s -o run生成的文件默认没有可执行权限,再加上目标格式不匹配,系统无法识别为可执行文件,所以报权限错误。
  • 格式错误问题:三星Exynos 7904是ARM64(aarch64)架构,你用-felf64指定的是x86_64架构的目标文件格式,和当前CPU完全不兼容,链接器自然报错。

正确编译运行步骤

针对Termux的ARM64环境,按以下操作执行:

1. 安装必要工具(如果没装的话)

pkg install yasm binutils

2. 编译ARM64格式的目标文件

用yasm指定ARM64的输出格式:

yasm -faarch64 file.s -o file.o

3. 链接生成可执行文件

ld file.o -o run

4. 添加权限并运行

给生成的程序加上执行权限,再运行:

chmod +x run
./run

额外提醒

你写的汇编代码必须是ARM64架构的指令集,不能用x86的汇编代码——比如ARM64的入口点是_start,寄存器用x0-x30而非rax/rbx这类,系统调用号也和x86不一样,写错指令的话就算编译通过也会运行出错。

内容的提问来源于stack exchange,提问作者Nico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 19:38:15