CPU & 寄存器
寄存器的作用是进行数据的临时存储,CPU的运算速度很快,为了性能,CPU在内部开辟了一块临时存储区域,在进行运算时先将数据从内存复制到这块临时存储区域中,运算时就在这块区域中进行,称这块临时存储区域为寄存器
对于arm64系的CPU来说,如果寄存器以x开头则表明是一个64位的寄存器,如果以w开头则表明是一个32位的寄存器,其中32位寄存器是64位寄存器的低32位部分,并不是独立存在的
- 可以通过改变寄存器的内容来实现对CPU的控制
- 不同的CPU,寄存器的个数,结构是不同的
浮点寄存器
通用寄存器
- 通用寄存器也叫数据地址寄存器,通常用来做数据计算的临时存储、累加、计数、地址保存等功能
- arm64拥有32个64位的通用寄存器x0~x32,以及XZR(零寄存器)
- w0~w28是32位的,因为64位CPU可以兼容32位的,所以可以使用64位寄存器的低32位
- w0是x0的低32位
向寄存器里存入-1
pc寄存器
- pc寄存器为指令指针寄存器,它表示了CPU当前要读取指令的地址
- 在内存和磁盘上数据和指令没有区别,都是二进制信息
- CPU将pc寄存器指向的内存单元内容看作是指令
- 如果内存中的某段指令被CPU执行过,那么它所在的内存单元必定被pc指向过
通过修改pc寄存器的值来改变汇编指令的执行顺序
bl指令
arm64提供了mov来表示传送指令,可以用来修改大部分的值,但是mov不能修改pc的指,arm64提供了bl指令来修改pc的值