汇编指令记录

STM指令

将一组寄存器中的数据存入到栈中,具有四种操作方式:

STMDB、STMDA、STMIB、STMIA 


STMIA 目标寄存器,{一组源寄存器}

            STMIA R13!,{R0-R1} ;将R0,R1寄存器中的数据存入R13指向的栈空间,完成后将R13的数值更新为当前指向的

                                                     栈地址。

                                                     相当于       *R13=R0  

                                                                      *(R13+4)=R1

                                                                       R13=R13+8

STMDB 目标寄存器,{一组源寄存器}

            STMDB  R13,{R0}     将R0存入R13 完成后R13不改变  *(R13-4)=R0


MRS指令 将XPSR寄存器的数据保存到通用寄存器

            MRS  R0 ,XPSR ;  即 R0=XPSR

MSR指令 将通用寄存器的数据保存到XPSR寄存器

           MSR XPSR,R0  ;  即 XPSR=R0


LDM  LDM是LDR指令的增强型 , 将多个连续的数据存入到一组寄存器

有四种操作方式

DB (Decrement Before)栈指针先减小再操作、DA(Decrement After)栈指针先操作再减小

IB(Increment Before)栈指针先增加再操作、IA(Increment After)栈指针先操作再增加

LDMIA R14,{R0-R3,R12} 从LR寄存器指向的栈地址中取出5个32位数据分别存进到R0-R4以及R12 ,即时

                                            R0=*R14

                                            R1=*(R14+4)

                                            R2=*(R14+8)

                                            R3=*(R14+12)

                                            R12=*(R14+16)

LDMIA R1!,{R4-R11}  从R1寄存器指向的地址连续取出8个32位数据存入到R4-R11寄存器中,完成操作之后将R1更新为当前

                                        的栈地址

                                            R4=*R1

                                            R5=*(R1+4)

                                            R6=*(R1+8)                                        

                                            R7=*(R1+12)

                                            R8=*(R1+16)

                                            R9=*(R1+20)

                                            R10=*(R1+24)

                                            R11=*(R1+28)

                                            R1=R1+32

ADD 指令  加法指令

ADD R14,#0x40 将LR寄存器的值与0x40相加,赋予LR R14+=0x40



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值