ARM 汇编指令(更新中)

1、str 指令

 **- 格式**
 STR{条件}  源寄存器,<存储器地址>
 STR指令用亍从源寄存器中将一个32位的字数据传送到存储器中。
 
 **- 案例**
 
STR R0,[R1],#8   ;将R0中的字数据写入以R1为地址的存储器中,
并将新地址R1+8写入R1。
STR R0,[R1,#8]   ;将R0中的字数据写入以R1+8为地址的存储器中。

2、ORR指令(逻辑 或)


 **- 格式**
     ORR{条件}{S} 目的寄存器,操作数1,操作数2
ORR指令用于在两个操作数上进行逻辑或运算,并把结果放置到目的寄存器中。
操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,
或一个立即数。该指令常用于设置操作数1的某些位。

 **- 案例**
 
ORR R0,R0,#3        ;该指令设置R0的0、1位,其余位保持不变。

3、BIC指令(位清零)

 **- 格式**
		BIC {条件} {S} 目的寄存器,操作数1,操作数2
BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。
操作数1应是一个寄存器,操作数2可以是一个寄存器,
被移位的寄存器,或一个立即数。 
操作数2为32位的掩码,如果在掩码中设置了某一位,
则清除这一位。未设置的掩码位保持不 变。

 **- 案例**

BIC R0,R0,#%1011    ;该指令清除R0中的位 0、1、和 3,其余的位保持不变。

4、MRS指令

 **- 格式**

    MRS{条件}    通用寄存器 程序状态寄存器(CPSR或SPSR)
MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。
该指令一般用在以下两种情况:
Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容
读入通用寄存器,修改后再写回程序状态寄存器。
Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令
读出程序状态寄存器的值,然后保存。

 **- 案例**

MRS R0,CPSR                         ;传送CPSR的内容到R0
MRS R0,SPSR                         ;传送 SPSR的内容到R0

5、MSR指令

 **- 格式**

     MSR{条件}    程序状态寄存器(CPSR或SPSR)_<域>,操作数
MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。
其中,操作数可以为通用寄存器或立即数。
<域>用于设置程序状态寄存器中需要 操作的位,32位的程序状态寄存器可分为4个域:
位[31:24]为条件位域,用f表示;
位[23:16]为状态位域,用s表示;
位[15:8] 为扩展位域,用x表示;
位[7:0]    为控制位域,用c表示;
该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR指令中指明将要操作的域。

 **- 案例**

MSR CPSR,R0        ;传送R0的内容到CPSR
MSR SPSR,R0        ;传送R0的内容到SPSR
MSR CPSR_c,R0     ;传送R0的内容到SPSR,但仅仅修改CPSR中的控制位域
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂奔的乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值