常用ARM汇编指令积累

MOV,LDR:
ldr r0, 0x12345678
就是把0x12345678这个地址中的值存放到r0中。
而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。
x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。

BIC―――――位清除指令
指令格式:
BIC{cond}{S} Rd,Rn,operand2
BIC指令将Rn 的值与操作数operand2 的反码按位逻辑”与”,结果存放到目的寄存器Rd 中。指令示例:BIC R0,R0,#0x0F ;将R0最低4位清零,其余位不变。

arm逻辑运算指令ORR
ORR R0,R0,#3
这个是把R0与3或并把结果赋给R0
orr 是逻辑或指令。
这句的意思是设置R0的0,1位为1其他位保留

adr ------  获取地址指令
adr r0, _start  //获取_start的地址,并赋给r0寄存器.

mrs ------  读寄存器状态
mrs r0,cpsr
@将cpsr的状态值读到r0中


msr ------  写寄存器
msr cpsr,r0
@写cpsr寄存器

MRS {<cond>} Rd,CPSR|SPSR 将使用这两条指令将状态寄存器传
MSR {<cond>} CPSR_<field>|SPMRS与MSR配合使用,作为更新PS


 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页