[信息与通信]第三章ARM指令系统.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]第三章ARM指令系统

说明一 ARM指令长度 ARM指令长度 指令集可以是以下任一种 32 bits 长 (ARM状态) 16 bits 长 (Thumb 状态) 支持3种数据类型 字节 (8-bit) 半字 (16-bit) 字 (32-bit) 字必须被排成4个字节边界对齐,半字必须被排列成2个字节边界对齐 说明二 ARM指令长度 向后兼容:新版本增加指令,并保持指令向后兼容; Load-store 结构* load/store –从存储器中读某个值,操作完后再将其放回存储器中 只对存放在寄存器的数据进行处理 对于存储器中的数据,只能使用load/store指令进行存取 说明三 ARM指令的独特性 虽然属于RISC处理器,ARM处理器有它的独特性: 1、ARM可提供压缩形式的指令集:Thumb,它将ARM指令集的一个子集编码为16位指令。处理器在执行时可以切换到执行Thumb指令模式。 2、在算术指令中,可以将第二操作数在运算之前移位(如:LDREQ R0,[R1,R2,LSR #16]!)。注意:移位通过组合电路完成,而不需时钟脉冲的作用,所以不影响指令执行时间。 3、ARM支持指令的条件执行。一般处理器都只支持指令的条件转移。条件转移会使已在流水线中的后续指令作废,使流水线“断流”,而条件执行避免了此情况。(当一个条件执行部分的大小超过3条指令时,还是使用条件转移指令为好)。 4、指令的执行结果是否影响程序状态寄存器中的标志位由程序员决定:在操作码后加上s(如:add - adds)就可以使运算结果改变标志位。 第3章 ARM指令系统 简介 第3章 ARM指令系统 ARM指令集与Thumb指令集的关系 3.1 ARM处理器寻址方式 寻址方式分类 寻址方式分类——寄存器寻址 寻址方式分类——立即寻址 寻址方式分类——寄存器移位寻址 寻址方式分类——寄存器间接寻址 寻址方式分类——基址寻址 寻址方式分类——基址寻址 寻址方式分类——多寄存器寻址 寻址方式分类——堆栈寻址 寻址方式分类——堆栈寻址 寻址方式分类——堆栈寻址 寻址方式分类——堆栈寻址 寻址方式分类——块拷贝寻址 寻址方式分类——相对寻址 简单的ARM程序 简单的ARM程序 3.2 ARM指令集介绍 ARM指令集——基本指令格式 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 桶形移位器 桶形移位器操作 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——条件码 ARM指令集——条件码 ARM指令集——存储器访问指令 3.LDR和STR ----双字:加载/存储两个相邻的寄存器,64位双 字。其句法有4种: Op {cond} D Rd,[Rn] 零偏移 Op {cond} D Rd,[Rn,offset] {!} 前索引偏移 Op {cond} D Rd,label 程序相对偏移 Op {cond} D {T} Rd,[Rn],offset 后索引偏移 其中: Rd 加载/存储寄存器中的一个,另一个是R(d+1)。Rd必须是偶数寄存器,且不是R14。 Rn 除非指令为零偏移,或不带写回的前索引,否则,Rn不允许与Rd和R(d+1)相同。 label label必须是在当前指令的上下252字节范围内。 例如: LDRD R6,[R11] ;R6←[R11],R7←[R11+4] STRD R4,[R9,#24] ;R4→[R9+24],R5→[R9+28] ARM指令集——ARM数据处理指令 ARM指令集——乘法指令 ARM指令集——分支指令 ARM指令集——杂项指令 ARM伪指令 ARM汇编程序设计 由于高级编程语言隐藏了CPU执行指令的许多细节,因此在只关心系统所具有功能的系统中,采用高级语言编写程序更为合适。但是,CPU执行指令的细节差异会反应在系统的非功能特性上,例如系统程序的规模和运行速度。因此,掌握汇编语言程序设计对于嵌入式系统的设计者来说是非常必要的。 预定义的寄存器和协处理器 ARM汇编器对ARM的寄存器进行了预定义,所有的寄存器和协处理器名都是大小写敏感的。预定义的寄存器如下: ·R0~R15和r0~r15; ·a1~a4(参数、结果或临时寄存器,与r0~r3同义); ·v1~v8(变量寄存器,与r4~r11同义); ·sb和SB(静态基址寄存器,与r9同义); ·sl和SL(堆栈限制寄存器,与r10同义); ·fp和FP(帧指针,与r11同义); 预定义的寄存器和

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档