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