assembly - 如何仅使用汇编语言为 ARM 编写程序

标签 assembly arm

我想用纯 ARM 汇编语言为我的基于 ARM 的手机 (Nexus S) 编写一个小程序。 我知道 C 中的内联汇编,但是当我尝试一个简单的程序时,例如

int main() {
    asm("nop");
    return 0;
}

perf 显示运行该程序消耗了数千条指令和周期。 我不知道为什么..但我相信这是因为加载了最小的 C 库以便处理 int main 并返回 0 等。
我想避免这种情况..

所以,我想知道是否可以用纯汇编编写一个小程序并在基于 ARM 的手机(Nexus S)上执行它

最佳答案

首先,您需要一些合适的工具包 - 最重要的是汇编程序。我建议fasmarm .

它是基于 FASM 的交叉汇编器 - 您应该在 x86 机器 - Windows 或 Linux 上编写程序,编译程序然后将其上传到 Arm 机器上执行。

Fasmarm支持全系列 Arm 处理器和协处理器。

关于assembly - 如何仅使用汇编语言为 ARM 编写程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090344/

相关文章:

assembly - memcmp 忽略奇数位置的字符

assembly - 保留符号的左移是否有任何有效用途?

c - 显示 %d 或 %u 时 snprintf 崩溃

gcc - 未通过带有 __attribute__((fastcall)) 的寄存器获取从 asm 传递到 C 的函数参数

performance - rep stosb 指令如何比等效循环执行得更快?

assembly - 为什么引用同一节中的全局函数的函数只能在链接时求解,而局部函数则在编译时求解?

c - 带参数的内联汇编重新排序代码

c - 在具有 ARM A9 处理器、L2 CACHE、SRAM 的系统上。是否有可能有一个C程序来获得以下性能数据

linux - ARM armv5tejl 交叉编译

python - 为 arm 交叉编译 py-spidev