首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS汇编代码

iOS汇编代码
EN

Stack Overflow用户
提问于 2011-12-08 06:48:10
回答 4查看 7.9K关注 0票数 7

我想尝试用苹果iOS编写一些ARM汇编代码,只是出于教育目的。我想从Xcode中的一些行内代码开始。我的理解是,我需要为iOS设备编译,例如为我的iPhone编译,这意味着我需要每年支付99美元的会员费。我不认为我可以在iOS手机模拟器中使用ASM汇编代码。我很难找到使用iPhone在Xcode环境中编写ARM汇编代码的示例、书籍或文档。我做错了吗?也许iOS不是学习ARM汇编的最友好的用户环境。

EN

回答 4

Stack Overflow用户

发布于 2011-12-08 11:02:00

后退...

你想学什么?Arm装配或iOS编程?选一个..。

你有组装经验吗?

你认为你想在手臂装配中学到什么?开始写一些成熟的gui应用程序吧?您需要学会将立即数放入寄存器中,添加and、or和xor,并将答案保存在寄存器中。然后读写一些内存位置。学习使用堆栈、进行调用等。然后用C或其他语言编写应用程序,并使用asm进行手动调优或使用asm技能来调试编译器和/或代码。在asm中编写应用程序或操作系统等是为那些想要发表声明或有特定原因的人准备的,而不是为了教育目的。

有一些倾向于统一的ARM汇编语言,它既可以在基于ARM的内核上工作,也可以在基于thumb2的内核上工作。不是为了所有需要的汇编语言,而是为了你可能想要写一个代码模块的地方,而不是有大量的如果拇指等乱扔代码的地方。您当然可以在这里亲身体验一下,并在其他平台上直接使用其中的一些代码来执行完整的32位ARM指令。thumbulator是拇指的,是基于ARM的内核和基于thumb2的内核之间的通用指令集,基本上它是可移植的ARM指令集,只需编写一次代码,它就可以在几乎所有的内核上工作。

如果你的目标是学习iOS编程,获得工具包或其他工具,并使用他们想让你学习的任何语言来学习,精通这一点,学习apis等。然后,如果你做了上面的一些汇编工作,那么你可以开始考虑从你的iOS程序调用asm函数或内联汇编程序等。多少个汇编器,你来选择。我不会期望看到为该平台用汇编程序编写的应用程序,相反,我会搜索如何从ios应用程序调用此汇编代码,或者如何做内联汇编。(除非你擅长真正的汇编,否则不要学习内联汇编)。

根本没有理由为访问模拟器付费,有很多arm模拟器,一个在mame,一个在gdb和其他地方的arm模拟器,一些游戏男孩高级和任天堂ds模拟器,等等,等等。模拟器的数量可能比你愿意花时间去尝试的要多,我自己已经有10年左右的时间了,并没有全部尝试过。

学习汇编不像C或python或java,我将写一个扫雷游戏来学习这门语言。您正在学习移动代码的机制,小步骤,而不是编写有用的应用程序。例如,使用16位处理器将两个128位数字相加是一个有价值的汇编语言项目。用不带乘法指令的处理器将两个数字相乘,这是另一个汇编语言类型的学习项目。是的,我同意你可以通过从iOS应用程序中调用asm来学习这些东西,但是如果你还没有iOS开发人员工具包,也不知道如何编写iOS应用程序,那么在你开始考虑汇编程序之前,你还有很多事情要做。

如果我没有回答你的问题,没问题,我很乐意删除这个答案……

票数 12
EN

Stack Overflow用户

发布于 2011-12-08 07:13:10

即使没有代码签名证书,我认为您也可以进入方案弹出菜单(右侧)并选择"iOS Device“。

一旦你这样做了,你就可以在你的项目中选择任何.c或者.m (或者.cpp或者.mm)文件,打开助手编辑器,然后从助手编辑器跳转条中选择"Assembly“。然后,您可以并排看到源代码和汇编代码。

或者,您可以直接转到产品菜单并生成输出->程序集

您可能会发现从C代码开始会更容易,在C代码中,函数调用最初比Objective-C方法调用容易得多。

票数 2
EN

Stack Overflow用户

发布于 2011-12-08 07:11:16

您需要的是一个ARM开发工具包和一个基于Linux的编程工具包。然后,您可以在Mac上安装VirtualBox,创建一个Linux虚拟机,并在虚拟Linux机器上安装ARM开发工具。当您购买ARM开发套件时,请确保它附带ARM cpu、完整的开发/测试板、用于软件传输/调试的USB电缆以及完整的Linux工具链。你可以找到这样的工具包,价格不到99美元。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8423737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档