第六章 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文档。上传文档
查看更多
第六章 arm指令系统

嵌入式系统 Embedded System 教师:白华 邮箱:baihua2000@ 电话办公室:4A-409 寻址方式分类 寻址方式分类——寄存器寻址 寻址方式分类——立即寻址 寻址方式分类——多寄存器寻址 寻址方式分类——堆栈寻址 寻址方式分类——相对寻址 6.2.1 指令格式 6.2.2 条件码 6.2.3 ARM指令集 ARM存储器访问指令——单寄存器存取 ARM存储器访问指令——多寄存器存取 ARM指令集——ARM数据处理指令 ARM指令集——程序如何跳转 ARM指令集—— SMULL{cond}{S} (RdLo,RdHi)?Rm*Rs 64位有符号乘法指令 SMULL RdLo, RdHi, Rm, Rs MUL{cond}{S} Rd?Rm*Rs (Rd≠Rm) 32位乘法指令 MUL Rd, Rm, Rs SMLAL{cond}{S} (RdLo,RdHi)?Rm*Rs+(RdLo,RdHi) 64位有符号乘加指令 SMLAL RdLo, RdHi, Rm, Rs SMLAL{cond}{S} (RdLo,RdHi)?Rm*Rs+(RdLo,RdHi) 64位无符号乘加指令 UMLAL RdLo, RdHi, Rm, Rs UMULL{cond}{S} (RdLo,RdHi)?Rm*Rs 64位无符号乘法指令 UMULL RdLo, RdHi, Rm, Rs MLA{cond}{S} Rd?Rm*Rs+Rn (Rd≠Rm) 32位乘加指令 MLA Rd, Rm, Rs, Rn 条件码位置 操作 说明 助记符 ARM数据处理指令——乘法运算符 比较指令将两个数值进行的特定运算,根据运算结果影响CPSR的相关标志位,用于后面程序的条件执行,但是运算结果不予保存。 OpCode 运算寄存器,操作数 运算寄存器 操作数 运算符 影响标志位 ARM数据处理指令——比较和测试指令 思考与练习 ? 1.用R1寄存器的最低字节替换掉R2寄存器的最低字节,并不影响条件标志位? R1 R2 BYTE2 BYTE3 BYTE1 BYTE0 BYTE2 BYTE3 BYTE1 BYTE0 BYTE0 BYTE0 AND R1,R1,#0x000000FF AND R2,R2,#0xFFFFFF00 ORR R2,R2,R1 三、分支指令 在ARM中有两种方式可以实现程序的跳转: 1.直接向PC寄存器写入地址值,实现在4GB(32位)的地址空间任意跳转; 例: MOV PC,R14 2.使用分支指令直接跳转。 B指令:分支指令,最简单的跳转指令 BL指令:带链接的分支指令 BX指令:带状态切换的分支指令 B指令为简单的跳转指令,不附带其它功能。跳转范围限制在当前指令的±32M字节地址内(ARM指令为字对齐,最低2位地址固定为0)。 程序代码 B main xx main 分支指令 “B” * * 第六章 ARM的指令系统 1.ARM程序的文件类型: C程序:ARM开发中大部分程序使用C语言编写,文件类型为“*.C”; 汇编程序:涉及到硬件底层操作的代码有时必须使用汇编语言编写,文件类型为“*.S”。 2.为什么学习ARM指令系统: 操作系统移植 编写启动代码 方便程序调试 1. ARM处理器的寻址方式; 2. ARM指令的特点; 3. ARM指令的种类,它能完成哪些功能。 本章学习重点 6.1 ARM处理器的寻址方式 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有8种基本寻址方式。 1.寄存器寻址; 2.立即寻址; 3.寄存器间接寻址; 4.变址寻址; 5. 寄存器移位寻址; 6.多寄存器寻址; 7.堆栈寻址; 8.相对寻址。 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去R2的值,结果保存到R0 0xAA 0x55 R2 R1 MOV R1,R2 0xAA 立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。立即寻址指令举例如下: SUBS R0,R0,#1 ;R0减1,结果放入R0,并且影响标志位 MOV R0,#0xFF000

文档评论(0)

ajgoaw + 关注
文档贡献者

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

1亿VIP精品文档

相关文档