ARM汇编指令集
指令、伪指令
(汇编)指令:是机器码的助记符,经过汇编器编译后,由CPU执行。
(汇编)伪指令:用来指导指令执行,是汇编器的产物,最终不会生成机器码。
两种不同风格的ARM指令
ARM官方的ARM汇编风格:指令一般用大写,Windows中的IDE开发环境。
GNU风格的ARM汇编:指令一般用小写。
ARM汇编的特点
1. LDR/STR架构
.ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU中通用寄存器中才能被CPU处理。
.ldr(load register)指令将内存内容加载入通用寄存器。
.str(store register)指令将寄存器内容存入内存空间中。
.dr/str组合用来实现 ARM CPU和内存数据交换
2. 8种寻址方式
寄存器寻址mov r1, r2
立即(立即数)寻址 mov r0, #0xFF00
寄存器移位寻址 mov r0, r1, lsl #3
寄存器间接寻址 ldr r1, [r2] 表示内存,内存地址存在r2这个寄存器中,把内存地址里的值给r1
基址变址寻址ldr r1, [r2, #4]内存地址在r2+4里面
多寄存器寻址 ldmia r1!, {r2-r7, r12}一次访问多个寄存器
堆栈寻址 stmfd sp!, {r2-r7, lr}
相对寻址