ARM指令集中经常使用的存储和载入指令

发布者:咖啡狐狸最新更新时间:2016-06-21 来源: eefocus关键字:ARM  指令集  存储和载入指令 手机看文章 扫描二维码
随时随地手机看文章
ARM微处理器支持载入/存储指令用于在寄存器和存储器之间传送数据,载入指令用于将存储器中的数据传送到寄存器,存储指令则完毕相反的操作。经常使用的载入存储指令例如以下:

    —  LDR     字数据载入指令

—       LDRB    字节数据载入指令

    —  LDRH    半字数据载入指令

    —  STR     字数据存储指令

—       STRB    字节数据存储指令

    —  STRH    半字数据存储指令

1、LDR指令

LDR指令的格式为:

LDR{条件} 目的寄存器,<存储器地址>

LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通经常使用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而能够实现程序流程的跳转。该指令在程序设计中比較经常使用,且寻址方式灵活多样,请读者认真掌握。

指令演示样例:

LDR   R0,[R1]                  ;将存储器地址为R1的字数据读入寄存器R0。

LDR   R0,[R1,R2]             ;将存储器地址为R1+R2的字数据读入寄存器R0。

LDR   R0,[R1,#8]             ;将存储器地址为R1+8的字数据读入寄存器R0。

LDR   R0,[R1,R2] !           ;将存储器地址为R1+R2的字数据读入寄存器R0,并将新地址R1+R2写入R1。

LDR   R0,[R1,#8] !          ;将存储器地址为R1+8的字数据读入寄存器R0,并将新地址R1+8写入R1。

LDR   R0,[R1],R2              ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2写入R1。

LDR   R0,[R1,R2,LSL#2]!   ;将存储器地址为R1+R2×4的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。

LDR   R0,[R1],R2,LSL#2     ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。

2、LDRB指令

LDRB指令的格式为:

LDR{条件}B 目的寄存器,<存储器地址>

LDRB指令用于从存储器中将一个8位的字节数据传送到目的寄存器中,同一时候将寄存器的高24位清零。该指令通经常使用于从存储器中读取8位的字节数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而能够实现程序流程的跳转。

指令演示样例:

LDRB R0,[R1]         ;将存储器地址为R1的字节数据读入寄存器R0,并将R0的高24位清零。

LDRB R0,[R1,#8]    ;将存储器地址为R1+8的字节数据读入寄存器R0,并将R0的高24位清零。

3、LDRH指令

LDRH指令的格式为:

LDR{条件}H 目的寄存器,<存储器地址>

LDRH指令用于从存储器中将一个16位的半字数据传送到目的寄存器中,同一时候将寄存器的高16位清零。该指令通经常使用于从存储器中读取16位的半字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而能够实现程序流程的跳转。

指令演示样例:

LDRH R0,[R1]         ;将存储器地址为R1的半字数据读入寄存器R0,并将R0的高16位清零。

LDRH R0,[R1,#8]    ;将存储器地址为R1+8的半字数据读入寄存器R0,并将R0的高16位清零。

LDRH R0,[R1,R2]    ;将存储器地址为R1+R2的半字数据读入寄存器R0,并将R0的高16位清零。

4、STR指令

STR指令的格式为:

STR{条件} 源寄存器,<存储器地址>

STR指令用于从源寄存器中将一个32位的字数据传送到存储器中。该指令在程序设计中比較经常使用,且寻址方式灵活多样,使用方式可參考指令LDR。

指令演示样例:

STR   R0,[R1],#8    ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。

STR   R0,[R1,#8]    ;将R0中的字数据写入以R1+8为地址的存储器中。

5、STRB指令

STRB指令的格式为:

STR{条件}B 源寄存器,<存储器地址>

STRB指令用于从源寄存器中将一个8位的字节数据传送到存储器中。该字节数据为源寄存器中的低8位。

指令演示样例:

STRB R0,[R1]         ;将寄存器R0中的字节数据写入以R1为地址的存储器中。

STRB R0,[R1,#8]    ;将寄存器R0中的字节数据写入以R1+8为地址的存储器中。

6、STRH指令

STRH指令的格式为:

STR{条件}H 源寄存器,<存储器地址>

STRH指令用于从源寄存器中将一个16位的半字数据传送到存储器中。该半字数据为源寄存器中的低16位。

指令演示样例:

STRH R0,[R1]         ;将寄存器R0中的半字数据写入以R1为地址的存储器中。

STRH R0,[R1,#8]    ;将寄存器R0中的半字数据写入以R1+8为地址的存储器中。

关键字:ARM  指令集  存储和载入指令 引用地址:ARM指令集中经常使用的存储和载入指令

上一篇:ARM指令集中常用的存储和加载指令
下一篇:arm汇编ldr,str,b,bl指令

推荐阅读最新更新时间:2024-03-16 14:58

简单说明gccarm-linux-gcc的区别
首先了解一下编译的过程:一个源文件经过gcc编译器编译后生成可执行文件其实经历了四个过程: * 预处理(Pre-processing) * 编译(Compiling) * 汇编(Assembling) * 链接(Linking) 而gcc经过编译后生成的可执行文件(最后也就是一大堆机器码)是在linux操作系统之上运行的,也就是说经过gcc编译器最后生成的一大堆机器码只有Linux操作系统认识,但是我们做ARM裸机实验时Soc上是没有linux操作系统的,所以这时候ARM裸机只认识经过ARM指令集生成的机器码。这时候我们要想让可执行文件在ARM裸机上运行就需要使用arm-linux-gcc (交叉编译工具)编译
[单片机]
英特尔、AMD、Arm 等为小芯片互连制定UCIe标准
今天,英特尔、AMD、Arm、Google Cloud、Meta、微软公司、高通公司、三星和台积电等公司宣布建立一个小芯片互联标准UCIe。    UCIe(Universal Chiplet Interconnect Express)将是一个开放的小芯片互连协议,将满足客户对可定制封装要求。 据报道,创始公司批准了UCIe 1.0规范,旨在在封装级建立无处不在的互连,利用了成熟的 PCI Express (PCIe) 和 Compute Express Link (CXL) 行业标准。    IT之家了解到,这套标准将让不同制造商的小芯片之间的互通成为可能,允许不同厂商的芯片进行混搭。 据AnandTech报道,今天
[半导体设计/制造]
英特尔、AMD、<font color='red'>Arm</font> 等为小芯片互连制定UCIe标准
苹果ARM自研处理器成本曝光:仅Intel的四分之一、续航更长
如果不出意外,苹果预计本月将发布新品,其就是之前传闻多次的基于ARM架构的Mac新电脑。   据外媒最新报道称,基于ARM架构自研芯片的新Mac,会率先在笔记本上使用,其会是搭载A14X处理器的MacBook,同样基于台积电5nm工艺,不过性能要比A14更强。   报道中还提到,苹果自研ARM芯片的成本(5nmA14X),只有Intel处理器的1/4,价格便宜的同时,续航表现更加出色,续航表现可以长达15至20小时。   行业人士直言,成本和性能(移动芯片)越来越不占优势的Intel,在苹果的地位岌岌可危,而后者后续会进一步降低相应的采购比例,这对于Intel来说并不是一个好消息。   除了A14X外,接下来可能会登场的是A
[手机便携]
ARM架构与体系学习(二)——3级流水线
看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果。所以,决定总结学习下ARM流水线。 ARM7处理器采用3级流水线来增加处理器指令流的速度,能提供0.9MIPS/MHz的指令处理速度。 PS: MIPS(Million Instruction Per Second)表示每秒多少百万条指令。比如0.9MIPS,表示每秒九十万条指令。 MIPS/MHz表示CPU在每MHz的运行速度下可以执行多少个MIPS,如0.9MIPS/MHz则表示如果CPU运行在1MHz的频率下,每秒可执行90万条指令。 如果CPU在20MHz的频率下,每秒可运行1800万条指令。MIPS/MHz可以很好的反映CPU的
[单片机]
<font color='red'>ARM</font>架构与体系学习(二)——3级流水线
嵌入式JavaPOS系统测试的设计与实现
0 引 言    随着嵌入式计算机应用技术的发展,嵌入式技术已经广泛应用到现代生活的方方面面。在零售系统方面,零售收款机是嵌入式应用的一个重要领域。目前,市场上的收款机大体上可分为三类:第一类是基于PC和DOS/Windows体系的,这类产品目前占市场绝大多数,属于高端产品,价格太高,适合大的商场和销售系统;第二类是基于单片机(51系列居多)的,基本上没有操作系统的支持,功能也较弱,主要用于餐饮娱乐,占据中低档市场;第三类是正在快速发展的基于嵌入式芯片和嵌入式操作系统的,价格较低,功能较强,适用于中高档市场,这类产品将是未来市场的主体。以上三类收款机的开发平台形形色色,基本上是每一款就是一种开发平台,没有统一的规范、开发和调试平台。
[测试测量]
嵌入式JavaPOS系统测试的设计与实现
基于ARMVxWorks实现自动彩信发送的嵌入式系统
在arm微处理器硬件平台上,应用windriver公司的tornado集成开发环境,实现基于vxworks的自动发送彩信的嵌入式应用系统。该系统使用现有cdma网络,根据设定的参数发送彩信到特定的移动终端用户。   随着嵌入式应用的发展和16/32位risc处理器技术的成熟,以及支持各种高端处理器的嵌入式操作系统的涌现和完善,嵌入式无线设备可以利用cdma网络实现许多新的应用。自动发送彩信的嵌入式系统就是这种新应用之一,在特定的条件下,系统自动发送彩信到指定的移动通信终端;该应用系统是由用户根据要求设定触发条件的自动发送彩信系统,当满足触发条件时,设备会自动控制捕获、压缩图像部件拍摄外部图像,经过模数转换、数字压缩等处理后,经处
[模拟电子]
基于<font color='red'>ARM</font><font color='red'>和</font>VxWorks实现自动彩信发送的嵌入式系统
基于ARM平台的MAC协议IP核设计
摘要:在介绍IEEE802.11MAC协议结构的基础上,给出协议开放的方案和步骤,提出IEEE802.11MAC协议在32位ARM7TDMI微处理器S3C4510B上的一种移植方案,开发出了嵌入式IEEE802.11MAC协议的IP核。同时,围绕着IEEE802.11MAC协议的原理和移植过程中硬件相关部分,介绍ARM平台的结构、可用资源以及ARM的初始化过程等。 关键词:IEEE802.11 MAC协议 ARM平台 无线局域网 引言 无线局域网被认为是下一代IT产业发展的是大推动之一,被IT业赋予了极大的希望。无线局域网802.11系列标准的MAC协议是一样的,只是在物理层上有差异,因此对802.11MAC协议的开发,不
[嵌入式]
基于嵌入式LinuxArm的远程监控模块的设计
引言 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。其中基于嵌入式Linux的远程配置模块的设计越来越得到人们的关注。通过基于嵌入式Linux的远程配置模块设计,远程专家和相关技术人员可以从Internet网上任意节点对服务器端所连接的设备的运行状态进行监控.并执行操作的修改。 系统的主要功能是通过计算机可使远程专家和相关技术人员在异地通过系统的客户器端监控多台设备的运行状态。系统在设备端的服务器端不仅仅承担一些实时检测系统状态的任务.而且需要把这些记录信息进行保存,并对客户端软件发出的请求进行相应的处理,系统在硬件上扩展了网卡模块、输入
[单片机]
基于嵌入式Linux<font color='red'>和</font><font color='red'>Arm</font>的远程监控模块的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved