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