汇编(一)初识汇编

195 阅读1分钟

汇编基础

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]image.png

查看变量及寄存器

image.png

查看内存地址的值

memory read 内存地址 image.png

读写寄存器

register read $寄存器 register write $寄存器 内存地址 image.png

读取内存地址

x 内存地址 读某个内存地址的值。
po 内存地址 可查看内存地址对应的数据,比如说对象。 image.png