微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 单寄存器加载与存储指令

单寄存器加载与存储指令

时间:10-02 整理:3721RD 点击:

这种指令用于把单一的数  传入或者传出一个寄存器。支持的数据类型有字(32 位 ) 、半字(16 位)  和字节。常用的单寄存器加载与存储指令包括:
          LDR/STR            字数据加载/ 存储指令
          LDRB/STRB        字节数据加载/ 存储指令
          LDRH/STRH       半字数据加载/ 存储指令
          LDRSB/LDRSH   有符号数字节/ 半字加载指令
          ( 注意:没有strsb/strsh 指令)
    1. 汇编格式 : LDR{<cond>}{T} Rd ,addr
        功能: LDR 指令用于从存储器中将一个 32 位的字数据加载到目的寄存器 Rd 中。该指令通常用于从存储器中读取32 位的字数据到通用寄存器,然后对数据进行处理。当程序计数器 PC 作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。
例 3.41   LDR 指令示例:
;使用标号
LDR R4,START                               ;将存储地址为START 的字数据读入R4  
STR R5,DATA1                               ;将R5 存入存储地址为DATA1 中
;前索引
LDR R0 ,[R1]                                 ;将存储器地址为R1 的字数据读入寄R0  
LDR R0 ,[R1 ,R2]                         ;将存储器地址为R1+R2 的字数据读入寄存器R0 。
LDR R0 ,[R1 ,#8]                        ;将存储器地址为R1+8 的字数据读入寄存器R0 。
LDR R0 ,[R1 ,R2 ,LSL  #2]         ;将存储器地址为R1 +R2×4 的字数据读入寄存器R0 。
;自动索引
STR R0 ,[R1 ,R2]  !                   ;将 R0 字数据存入存储器地址为R1+R2 的存储单元中,并将新地址R1 +R2 写入R1 。
STR R0 ,[R1 ,#8]  !                  ;将 R0 字数据存入存储器地址为R1+8 的存储单元中,并将新地址R1 +8 写入R1
STR R0 ,[R1 ,R2 ,LSL  #2]  !   ;将 R0 字数据存入地址为R1 +R2×4 的存储单元中,并将新地址R1 +R2×4 写入R1 。
;后索引
LDR R0 ,[R1] ,#8   ;将存储器地址为R1 的字数据读入寄存器R0,并将新地址R1 +8 写入R1
LDR R0 ,[R1] ,R2   ;将存储器地址为R1 的字数据读入寄存器R0,并将新地址R1 +R2 写入R1 。
LDR R0 ,[R1] ,R2 ,LSL  #2   ;将存储器地址为R1 的字数据读入寄存器R0,并将新地址R1 +R2×4 写入R1 。

了解

小编辛苦了,谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top