iOS汇编代码

标签 ios assembly arm

出于教育目的,我想在 Apple iOS 上尝试一些 ARM 汇编代码。我想从 Xcode 中的一些内嵌代码开始。 我的理解是我需要为 iOS 设备编译,例如为我的 iPhone,这意味着我需要支付 99 美元/年的成员(member)费。 我认为我不能将 ASM 汇编代码与 iOS 手机模拟器一起使用。 我很难在 iPhone 的 Xcode env 中找到有关 ARM 汇编代码的示例、书籍或文档。 我做错了吗?也许 iOS 不是学习 ARM 汇编的最用户友好的环境。

最佳答案

备份...

你想学什么? Arm 组装还是 iOS 编程?选择一个...

你有组装经验吗?

您认为您想要在 arm assembly 中学习什么?加入并编写一些完整的图形用户界面应用程序?您需要学习将立即数放入寄存器 add and or 和 xor 并将答案保存在寄存器中。然后读写一些内存位置。学习使用堆栈、进行调用等。然后用 C 或其他语言编写您的应用程序,并使用 asm 进行手动调整或使用您的 asm 技能来调试编译器和/或代码。在 asm 中编写应用程序或操作系统等是为了那些想要发表声明或有特定原因的人,而不是出于教育目的。

有些人倾向于统一的 ARM 汇编语言,它既可以在基于 ARM 的内核上运行,也可以在基于 thumb2 的内核上运行。不是针对所有需要的汇编语言,而是针对您可能想要编写代码模块而不必有很多乱七八糟的代码的地方。您当然可以在这里尝试一下,并在其他平台上直接将其中一些代码转化为完整的 32 位 ARM 指令。 thumbulator is thumb only,基于ARM的内核和基于thumb2的内核之间的通用指令集,基本上它是可移植的ARM指令集,一次编写代码,它几乎适用于他们所有的内核。

如果您的目标是学习 iOS 编程,获取工具包或其他任何东西,并使用他们希望您学习的任何语言进行学习,精通该语言,学习 API 等。那么如果您执行上面的一些汇编程序,那么您可以开始考虑从您的 iOS 程序调用 asm 函数或内联汇编器等。多少汇编程序,你的选择。我不希望看到用汇编程序为该平台编写的应用程序,而是搜索如何从我的 ios 应用程序调用此汇编代码或如何进行内联汇编。 (除非你擅长真正的汇编,否则不要学习内联汇编)。

根本没有理由为访问模拟器付费,那里有很多 arm 模拟器,一个在 mame,gdb 和其他地方的 armulator,许多 gameboy advance 和 nintendo ds 模拟器等,等等,等等。当然还有qemu-arm。模拟器的数量可能比您愿意花时间尝试的多,我自己已经使用了大约 10 年左右,并没有尝试过所有模拟器。

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

如果我与您的要求相去甚远,没问题,我很乐意删除此答案...

关于iOS汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423737/

相关文章:

c - 汇编中的无符号整数

c - ARM 裸机二进制链接

assembly - JE 的跳跃距离有限制吗?

gcc - 从 C、GCC(裸机)调用 ARM 汇编

android - Tensorflow:DecodeJpeg 方法在桌面和移动设备上为同一图像提供不同的像素值

android - 如何将 Tensorflow 与 react-native 一起使用?

ios - 如何在 iPhone 上控制硬件麦克风输入增益/电平?

ios - 在 viewDidLoad 中如何访问和修改其他对象的属性?

objective-c - 异步传递值

c++ - 需要用 C 或 C++ 编写 MIPS 汇编程序,寻找一些设计建议