嵌入式embedded系统基础电子课件教案第三章arm指令系统.pptx

嵌入式embedded系统基础电子课件教案第三章arm指令系统.pptx

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

本讲内容;一、 ARM指令系统概述;1、 指令系统概念; ARM指令是加载/存储(Load/Store)型: 也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。 ARM指令可以分为五大类: 数据处理指令、存储器访问指令、分支指令、协处理器指令、杂项指令。 ARM指令有7种寻址方式: 立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址 、块拷贝寻址、相对寻址。;ARM指令基本的语法格式为: Opcode {cond}{s} Rd, Rn {, Operand2} Opcode:指令操作码。 cond:指令的条件码。 S:决定指令的操作是否影响cpsr的值。 Rd:目标寄存器编码。 Rn:包含第一个操作数的寄存器编码。 Operand2:第2操作数。 ARM指令典型的编码格式为: (数据处理指令类); 条件码的位数和位置:每条ARM指令包含4位条件码域cond,它占用指令编码的最高四位[31:28]。 条件码的表示:条件编码共 24 =16 种,其中,15种用于指令的条件码。每种条件码用2个英文缩写字符表示。(见P47 表2-6) 带条件指令的执行:ARM处理器根据指令的执行条件是否满足,决定当前指令是否执行。 只有在cpsr中的条件标志位满足指定的条件时,指令才会被执行。不符合条件的代码依然占用一个时钟周期(相当于一个NOP指令)。 条件码的书写方法:条件码的位置在指令助记符的后面(因此也称为条件后缀)。 例如: MOVEQ R0, R1;指令条件码表;二、 ARM寻址方式;二、 ARM寻址方式;1、 立即寻址; 在指令格式中,第二个操作数有12位: 因此有效立即数immediate可以表示成: immediate=immed_8 循环右移(2×rot) 4 bit 移位值 (0-15)乘于2,得到一个范围在0-30,步长为 2的移位值。 因此,将ARM中的立即数称为8位位图。 记住一条准则: “最后8位移动偶数位”得到立即数。;0; 只有能够通过此构造方法得到的才是合法的立即数。 合法立即数: 0xFF;0x104(其8位图为0x41);0xFF0;0xFF00 非法立即数: 0x101;0x102;0xFF1 深入理解:一个合法的立即数可能有多种编码方法,将使某些指令的执行产生不同的结果。 如 0x3F0 ARM汇编编译器生成立即数的规则为: 当立即数数值在0到0xFF范围时,令immed_8=immediate,rot=0。 其它情况下,汇编编译器选择使rot数值最小的编码方式。;2、寄存器寻址; 二、寄存器移位寻址 1、寄存器移位寻址 当第二操作数为寄存器型时,在执行寄存器寻址操作时,也可以对第二操作数寄存器进行移位,此时第二操作数形式为: MOV Rd, Rn, Rm,{shift} 其中: Rm 称为第二操作数寄存器 shift 用来指定移位类型和移位位数,有两种形式: 5位立即数 (其值小于32) 寄存器(用Rs表示) (其值小于32) 在指令执行时将寄存器移位后的内容作为第二操作数参与运算。例如指令: ADD R3,R2,R1,LSR #2 ;R3←R2+(R1右移2位) ADD R3,R2,R1,LSR R0 ;R3←R2+(R1右移R0位); 2、第二操作数移位方式 共有6种移位方式: — LSL 逻辑左移 — LSR 逻辑右移 — ASL 算术左移 — ASR 算术右移 — ROR 循环右移 — RRX 带扩展的循环右移 (1)LSL:逻辑左移,空出的最低有效位用0填充。; (3)ASL:算术左移,由于左移空出的有效位用0填充,因此它与LSL同义。 (4)ASR:算术右移 (Arithmetic Shift Right) 。算术移位的对象是带符号数,移位过程中必须保持操作数的符号不变。如果源操作数是正数,空出的最高有效位用0 填充,如果是负数用1填充。 30 0 ; (5)ROR:循环右移(Rotate Right),移出的字的最低有效位依次填入空出的最高有效位。 31

文档评论(0)

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

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

1亿VIP精品文档

相关文档