汇编基础
CPU&寄存器
对于 arm64 系的 CPU 来说, 如果寄存器以 x 开头则表明的是一个64位的寄存器,如果以 w 开头则表明是一个32位的寄存器,在系统中没有提供16位和8位的寄存器供访问和使用。其中32位的寄存器是64位寄存器的低32位部分并不是独立存在的。
浮点和向量寄存器
浮点寄存器
- 64位:D0 - D31
- 32位:S0 - S31
向量寄存器
- 128位:V0-V31
通用寄存器
通用寄存器也称数据地址寄存器通常用来做数据计算的临时存储、做累加、计数、地址保存等功能。定义这些寄存器的作用主要是用于在 CPU 指令中保存操作数,在CPU中当做一些常规变量来使用。 ARM64有34个寄存器,包括31个通用寄存器、SP、PC、CPSR。
Xcode相关配置
编译器优化配置
Build Phases -> All Combined -> Optimization 可根据项目需求进行优化配置,一般选择 Faster,Smallest[-Os]。
查看变量及寄存器
查看内存地址的值
memory read 内存地址
读写寄存器
register read $寄存器
register write $寄存器 内存地址
读取内存地址
x 内存地址 读某个内存地址的值。
po 内存地址 可查看内存地址对应的数据,比如说对象。