ARM常用汇编指令汇总
程序员文章站
2022-03-16 17:30:39
...
ARM常用汇编指令汇总
.text表示代码段
.data初始化的数据段
.bss未初始化的数据段
.rodata只读数据段
.global表示全局变量
CPSR寄存器数据访问
指令 | 目的 | 源 | 描述 |
---|---|---|---|
MRS | R0 | CPSR | 将CPSR的数据放到R0中 |
MSR | CPSR | R1 | 将R1的数据放到CPSR中 |
RAM数据访问
指令 | 描述 |
---|---|
LDR Rd , [Rn,#offset] | 从寄存器Rn+offset的位置读取寄存器的值到Rn |
STR Rd , [Rn,#offset] | 将寄存器Rn的值写入到Rn+offset的位置 |
常用指令
@ 读寄存器的值
LDR R0, = 0xffff @将寄存器地址0xffff加载到R0中
LDR R1, [R0] @读取地址0xffff中的数据
@ 写寄存器的值
STR R0, = 0xffff @将寄存器地址0xffff加载到R0中
LDR R1, = 0xfff7 @将寄存器地址0xfff7加载到R1中
STR R1, [R0] @将地址0xffff的数据存到地址0xfff7中
@压栈和出栈
PUSH 和 POP指令
PUSH {R0~R3, R12} @将 R0~R3 和 R12 压栈
BIC指令-位清除指令
@指令格式:
BIC{cond}{S} Rd,Rn,operand2
@BIC指令将Rn 的值与操作数operand2 的反码按位逻辑”与”,结果存放到目的寄存器Rd 中。
@指令示例:
BIC R0,R0,#0x0F ;将R0低4位清零,其余位不变。
OOR指令-位置1指令
@指令格式:
ORR{条件}{S} 目的寄存器,操作数1,操作数2
@ORR指令将操作数1 的值与操作数2 做逻辑或运算,结果存放到目的寄存器中。
@指令示例:
ORR R0,R0,#0x0F ;将R0低4位置1,其余位不变。