- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三ARM指令..ppt
第3章 ARM指令系统 ARM 指令系统概述 ARM 指令的寻址方式 ARM 指令系统介绍 Thumb指令集 ARM 指令系统概述 数据类型 存储器组织 ARM指令分类 ARM指令的条件执行 ARM指令的特点 ARM指令系统概述 ARM指令系统属于RISC指令系统,ARM指令包括标准ARM指令集和Thumb指令集。标准的ARM指令每条都是32位,Thumb指令集是ARM指令集的子集,每条指令只有16位。 ARM高效,快速 ; Thumb灵活,小巧. 一、数据类型 ARM处理器一般支持下列6种数据类型: ① 8位有符号字节类型数据 ② 8位无符号字节类型数据 ③ 16位有符号半字类型数据 ④ 16位无符号半字类型数据 ⑤ 32位有符号字类型数据 ⑥ 32位无符号字类型数据 一、数据类型 有些ARM处理器不支持半字和有符号字节数据类型。 在ARM内部,所有ARM指令都是32位操作数,短的数据类型只有在数据传送类指令中才被支持。 当一个字节数据取出后被扩展到32位,在内部数据处理时,作为32位的值进行处理。 一、数据类型 ARM指令都是32位,并且以字为边界。 Thumb指令都是16位, 以2个字节为边界。 ARM协处理器可以支持另外的数据类型, 包括一套浮点数数据类型。 二、存储器组织 ARM字的地址的最低2位必须为00,半字的地址的最低为必须为0。 字的内容在存储器中的存放通常有两种方式: 小端方式:每个字的低位字节存在低地址 大端方式:每个字的低位字节存在高地址 二、存储器组织 如下图 大多数ARM处理器芯片都支持上面两种方式,一般缺省为小端方式。 二、存储器组织 例如:0小端方式存放如下: 大端方式存放如下: 地址 内容 地址 内容 A 78 A 12 A+1 56 A+1 34 A+2 34 A+2 56 A+3 12 A+3 78 三、ARM指令分类 ARM指令可分为以下6类: (一)存储器访问指令(Load/Store) (二)ARM数据处理类指令 (三)程序状态寄存器访问指令 (四)ARM分支转移类指令 (五)ARM协处理器类指令 (六)软件中断和断点指令 ARM指令集编码表 数据处理指令 四、ARM指令的条件执行 ARM的指令格式如下: 〈Opcode 〉﹛〈Cond 〉﹜﹛S﹜〈Rd〉,〈Rn〉,〈Operand2 〉 Cond: 指令的条件码 P41 Opcode: 指令操作码,指令助记符 S: 操作是否影响CPSR Rn: 包含第一个操作数的寄存器编码 Rd: 目标寄存器编码 Operand2:第二操作数 四、ARM指令的条件执行 所有的ARM指令都包含一个条件码,即每条ARM指令都是有条件执行的,而Thumb指令只有B(跳转)指令具有条件执行功能. 可选择是否根据执行结果来更新条件码。 若要更新条件码,则指令中须包含后缀“S”。 一些指令(如CMP、CMN、TST和TEQ)不需要后缀“S”,它们唯一的功能就是更新条件码标志。 四、ARM指令的条件执行 可以根据另外一条指令设置的标志,有条 件地执行某条指令,有下列两种情况: ① 在更新标志的指令后立即执行 ② 在插入的几条不更新标志的指令后执行 条件码的值将决定指令如何执行和相应标志的状态,如下表所示: 四、ARM指令的条件执行 四、ARM指令的条件执行 CMP r0, #5 BEQ BYPASS ; if (r0 != 5) { ADD r1, r1, r0 ; r1 := r1 + r0 – r2 SUB r1, r1, r2
文档评论(0)