Joe*_*tti 14 iphone assembly arm
我想开始编写ARM汇编程序并在iPhone上运行它.
这不是为了在应用程序中使用发布到应用程序商店 - 基本上我想使用ARM和iPhone 解决ProjectEuler上的问题,仅用于业余爱好和教育目的.
我该怎么做呢?我无法想出一个方法让一个项目使用任何手写的手臂运行.
我还没有找到任何关于如何专门为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和Thumb-2快速参考卡(6页长)以及确切CPU的2个完整文档.
例如,iPhone 3GS和iPhone 4都有一个ARMv7-A Cortex-A8 CPU,因此您可以下载ARM体系结构参考手册ARMv7-A和ARMv7-R版本(2000页长),它可以准确地告诉您哪些指令可用以及它们的工作方式,以及Cortex™-A8技术参考手册,它解释了特定CPU的指令时序等.