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