浅析ARM指令寻址方式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析ARM指令寻址方式

浅析ARM指令寻址方式   摘要:寻址方式是汇编语言中的一个重要内容,同时也是学习的难点之一。该文通过以ARM汇编语言为例,指出各种ARM指令的寻址方式的特点、分析比较各寻址方式间的区别,并通过具体实例来阐述不同寻址方式对内存的访问。   关键词:ARM汇编语言;ARM指令;寻址方式;多寄存器寻址;堆栈寻址   中图分类号:TP312文献标识码:A文章编号:1009-3044(2012)06-1249-03   Analysis of ARM Instruction Addressing Mode   WANG Ru   (Liaoning Equipment Manufacturing Technical College, Shenyang 110161, China)   Abstract: Addressing mode is an important part for assembly language, At the same time,It is hard to learn. This article based on ARM as? sembly language, The ARM instruction addressing mode features, Analysis and comparison of the difference between various addressing modes, and through some concrete examples to illustrate different addressing modes for a memory access.   Key words: ARM assembly language; ARM instructions; addressing mode; multiple register addressing; stack addressing   在嵌入式系统开发中主要采用的计算机语言有汇编语言和C、C++、JAVA等语言。其中C、C++、JAVA等高级语言主要用作嵌入式系统的应用程序的开发;而汇编语言主要用来进行嵌入式系统的初始化操作。由于每个独立的嵌入式系统产品都要有初始化部分,且汇编语言具有可直接访问硬件,提高运行效率等优点,因此汇编语言在嵌入式系统开发中占有非常重要的地位。   汇编语言在进行程序设计时必须考虑到机器的指令系统、寻址方式及存储设备的设置和功能,而熟练应用机器所采用的各种寻址方式,是运用汇编语言进行程序设计的根本。然而在教学过程中,我们发现很多同学对寻址方式知识点掌握不够好,这直接影响到指令的理解,进而影响整个汇编语言的学习。   本文以ARM汇编语言为例,介绍ARM指令的八种寻址方式,分析各种寻址方式的特点,找出它们之间的区别和联系,从而形成正确的概念,便于理解和学习。   首先,我们要明确几个概念。什么是寻址?寻址是处理器根据指令中所给出的信息找到操作数存储的地方。即寻找操作数的地址。什么是寻址方式?寻址方式就是给出不同的寻找操作数的方式。寻??方式的分类有很多种,本文归纳为八种,即寻找操作数有八种方式。   在寻址过程中,操作数的存放位置决定着寻址的方式。操作数一般存放在寄存器或存储器中。寄存器位于CPU内部,它的存取速度比存储器要快得多。下面我们开始逐一分析这几种寻址方式,我们以源操作数的寻址方式为例。    1立即数寻址   操作数在指令中给出,取出指令即取出数据。例如:   MOV R0, #0x8800;R0←#0x8800   该指令含义是将#0x8800数据传送给R0寄存器。其中,#0x8800就是操作数,本方式特点是操作数不用寻找,操作数在指令中。    2寄存器寻址   寄存器中的数值直接作为操作数。例如:   MOV R0, R1; R0←R1   该指令的含义是将R1寄存器的数值传送给R0寄存器。其中,要寻找的操作数存放在R1的寄存器中,即本方式的特点是操作数存放在寄存器中。    3寄存器间接寻址   寄存器存放的是操作数的地址。例如:   LDR R0 , [R2];R0←[R2]   该指令的含义是将R2中的数值作为地址,取出地址中的数据存在R0中。其中,[]表示R2中的数值表示的是操作数的地址。本方式的特点是操作数存放在存储器中,寄存器里存放的是操作数的地址。这与C语言中的指针概念有些类似。    4寄存器移位寻址   对第二个源操作数进行移位操作后为所求操作数。例如:   ADD R6, R3, R1, LSL#2;R6←R3 + R1 * 4   该指令含义为将R1寄存器的值进行逻辑左移2位后所得结果,与R3寄

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档