第2章 ARM指令分类与寻址方式.pptVIP

  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文档。上传文档
查看更多
第2章 ARM指令分类与寻址方式

第2章 ARM指令分类及寻址方式;第2章 目录;第2章 目录;ARM指令的分类;2.1 ARM指令的一般格式;2.1 ARM指令的一般格式; ARM指令的基本书写格式如下:;操作码;2.1 ARM指令的一般格式;2.1 ARM指令的一般格式;2.1 ARM指令的一般格式;2.2 ARM处理器寻址方式;2.2 ARM处理器寻址方式; ARM指令的基本书写格式如下:;先介绍 :#immediate——立即数 MOV R0,#0;R0=0在数据处理指令中,规定这个立即数必须是一个8bit的常数通过循环右移偶数位得到。;在一条ARM指令中获得一个合法的立即数;练习;立即数(2);装载32 bit常数; 操作数的值存放在寄存器中,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去R2的值,结果保存到R0 ; 可以采取的移位操作如下: LSL:逻辑左移(Logical Shift Left) LSR:逻辑右移(Logical Shift Right) ASR:算术右移(Arithmetic Shift Right) ROR:循环右移(ROtate Right) RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place ) ;LSL逻辑左移:右侧用0填充,最后移出位入C; 寄存器移位寻址是ARM指令集特有的寻址方式。;2.2 ARM处理器寻址方式;2.2 ARM处理器寻址方式;Load指令用于从存储器(包括内存和外存)中读取数据加载到寄存器中; Store指令用于将寄存器的数据保存到存储器。 各种类型的Load/Store指令的寻找的地址由两部分组成: 1〉基址寄存器:一般使用通用寄存器 2〉地址偏移量:立即数、寄存器、寄存器及一个移位常数。 需要的地址=基址寄存器+地址偏移量 ; 变址寻址就是将基址寄存器中的地址与指令中给出的偏移量相加/减,形成有效地址。变址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器(与通用寄存器R0-R15不同)访问等。;LDR 指令的语法格式如下: LDR{cond}{B}{T} Rd,address_mode;T后缀,在特权模式下对存储器的访问,将被存储器看成是用户模式(即非特权)的访问,操作的寄存器也是用户模式下的。(destination目的地)(书上34页*,35页*);偏移量方法 LDR R0,[R1,R2,LSL #2];R0←[R1+R2*4],R1不变 事先更新基址(前索引)(前变址) LDR R0,[R1,R2,LSL #2]! ;R0←[R1+R2*4] ,更新R1为R1+R2*4 事后更新基址(后索引)(后变址) LDR R0,[R1] ,R2,LSL #2;R0←[R1],更新R1为R1+R2*4;Pre or Post Indexed store寻址;I=0,立即数偏移 I=1,寄存器偏移 P=1,偏移量/前索引 P=0,后索引 U=1,加偏移 U=0,减偏移 W=1,后缀有! 回写基址寄存器 W=0,后缀无!不回写基址寄存器;2.2 ARM处理器寻址方式;2.2 ARM处理器寻址方式;批量Load/Store指令的寻址方式;r10+4;r10+4;栈顶;2.2 ARM处理器寻址方式;所以可以组合出四种类型的堆栈方式(须注意皆指入栈): 满递增:堆栈向上增长,堆栈指针指向最高有效数据项。指令如STMFA 、 LDMFA等; 空递增:堆栈向上增长,堆栈指针指向堆栈上的第一个空位置。指令如STMEA 、 LDMEA等; 满递减:堆栈向下增长,堆栈指针指向最低有效数据项。指令如STMFD 、 LDMFD等; 空递减:堆栈向下增长,堆栈指针指向堆栈下的第一个空位置。指令如STMED 、 LDMED等。 ;2.2 ARM处理器寻址方式;STMFA r13!, {r0-r5}; ← Push onto a Full Ascending Stack LDMFA r13!, {r0-r5}; → Pop from a Full Ascending Stack STMFD r13!, {r0-r5}; ← Push onto a Full Descending Stack LDMFD r13!, {r0-r5}; → Pop from a Full Descending Stack STMEA r13!, {r0-r5};

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档