关闭

常用ARM汇编指令积累

413人阅读 评论(0) 收藏 举报

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


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8092次
    • 积分:133
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:5篇
    • 译文:1篇
    • 评论:0条
    文章分类
    文章存档