2025-03-01 23:45:36 +08:00
|
|
|
|
- 读写指令
|
|
|
|
|
- ldr
|
|
|
|
|
- 普通用法
|
|
|
|
|
- 伪指令用法 多一个等号
|
|
|
|
|
- 多一个等号相当于直接取值,而不需要再解一次引用,跟mov指令差不多了,比如 ldr x1, =0x1000 这就是把0x1000直接拷贝到x1里, ldr x1, [x2] x2的值是0x1000,这就是读取0x1000位置的数据
|
|
|
|
|
- pc相对寻址 注意1MB限制,汇编的时候会检查
|
|
|
|
|
- ldr x1, label 注意!label是相对于当前pc位置的偏移
|
|
|
|
|
- 变换
|
|
|
|
|
- 基地址加偏移 ldr r5, [sp, #24] // 取栈上的值
|
2025-03-02 00:27:43 +08:00
|
|
|
|
- 前变基 ldr tmp1w, [src, \#-4]! // memmove函数
|
2025-03-01 23:45:36 +08:00
|
|
|
|
- 后变基 ldr w0, [x1], #4 // memcpy
|
|
|
|
|
- 待整理
|
|
|
|
|
- stp/ldp
|
|
|
|
|
- b/bl/br/blr
|
|
|
|
|
- b不带返回的跳到符号
|
|
|
|
|
- bl将当前pc+4设置到lr寄存器,带返回功能
|
|
|
|
|
- br调到
|
|
|
|
|
- isb/dmb/dsb
|
|
|
|
|
- dsb sy 用的比较多
|
|
|
|
|
- 主要是参数
|