iphone - 在 iPhone 上编写 ARM 汇编代码的工作流程

标签 iphone assembly arm

我想开始编写 ARM 汇编程序并在 iPhone 上运行它。

这并不是为了在要发布到应用程序商店的应用程序中使用 - 基本上我想解决 ProjectEuler 上的问题使用 ARM 和 iPhone,仅用于爱好和教育目的。

我怎样才能做到这一点?我无法想出一种使用任何手写 ARM 运行项目的方法。

最佳答案

我还没有找到任何有关如何专门为 iPhone 编写汇编代码的信息,但就像其他人在这里所说的那样,您可以:

1) 在 C/C++/ObjC 代码中编写内联 asm 语句,或者 2) 在“.s”文件中编写独立的汇编函数,然后将其添加到您的 XCode 源中,或者 3) 为外部汇编器(例如 NASM)编写独立的汇编函数。您在“.s”文件中编写汇编代码,并使用 NASM 生成“.o”目标文件,并将该目标文件与 XCode 中的项目链接起来。

因此,如果您只是尝试编写一些汇编指令,那么内联汇编器将是最简单的方法,但如果您计划编写多个汇编函数,那么我建议您使用独立的汇编文件。如果您计划使用宏编写许多汇编函数并希望跨平台兼容性等,那么我建议使用 NASM 将汇编代码编译到目标文件中。因为我使用的是 XCode gcc 汇编器,与 NASM 相比,它是相当缺乏的。您可以通过 http://www.nasm.us/ 免费获取 NASM

设置好汇编环境后,您需要学习如何编写 ARM 汇编代码!因为 iPhone(以及许多其他可移植设备和智能手机)使用 ARM 指令集。 http://www.coranac.com/tonc/text/asm.htm 有一个关于 ARM 汇编的非常好的但古老的介绍。 .

当涉及到汇编编程时,官方指令集引用手册通常是您将编写的所有内容的主要信息来源,因此您应该访问 ARM 网站并下载 ARM and Thumb-2 Quick Reference Card (6 页长)以及适用于您的具体 CPU 的 2 个完整文档。

例如,iPhone 3GS 和 iPhone 4 都具有 ARMv7-A Cortex-A8 CPU,因此您可以下载 ARM Architecture Reference Manual ARMv7-A and ARMv7-R Edition (2000 页长)它告诉您哪些指令可用以及它们如何工作,以及 Cortex™-A8 Technical Reference Manual这解释了您的特定 CPU 的指令时序等。

关于iphone - 在 iPhone 上编写 ARM 汇编代码的工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579950/

相关文章:

algorithm - 在SSE/AVX中选择唯一/重复数据删除

c - 为什么在 GDB 中, "frame at"的值与 ebp($fp) 寄存器的值不同?

linux - 未指定操作大小

iphone - 无效的代码签名权利 - 不支持数据保护 key

iphone - 羽化 NSView 不透明度

iphone - UITableView - 如何只显示包含数据的行

ios - 在退出调用方法之前显示不会更新

debugging - 基于 ARM 的设备上出现 Prefetch Abort 错误的常见原因有哪些?

c++ - 从我的 C/C++ 代码中获取等效的汇编代码 - x86 和 ARM

Linux CPU 使用工具