电子发烧友App

硬声App

扫码添加小助手

加入工程师交流群

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>ARM>数据处理指令的寻址方式解析

数据处理指令的寻址方式解析

2017-10-18 | rar | 0.6 MB | 次下载 | 1积分

资料介绍

 4.1 数据处理指令的寻址方式
  4.1.1 数据处理指令的寻址方式概要
  数据处理指令的基本语法格式如下。
  《opcode》 {《cond》} {S} 《Rd》,《Rn》,《shifter_operand》
  其中《shifter_operand》有下面11种形式,如表4.1所示。
  表4.1 《shifter_operand》的寻址方式
  语 法寻 址 方 式
  1#《immediate》立即数寻址
  2《Rm》寄存器寻址
  3《Rm》, LSL #《shift_imm》立即数逻辑左移
  4《Rm》, LSL 《Rs》寄存器逻辑左移
  5《Rm》, LSR #《shift_imm》立即数逻辑右移
  6《Rm》, LSR 《Rs》寄存器逻辑右移
  7《Rm》, ASR #《shift_imm》立即数算术右移
  8《Rm》, ASR 《Rs》寄存器算术右移
  9《Rm》, ROR #《shift_imm》立即数循环右移
  10《Rm》, ROR 《Rs》寄存器循环右移
  11《Rm》, RRX寄存器扩展循环右移
  数据处理指令的寻址方式根据《shifter_operand》的不同,相应的分为11种。
  4.1.2 指令解码
  图4.1显示了数据处理指令不同寻址方式下的解码格式。
  数据处理指令的寻址方式解析
  图4.1 数据操作指令编码格式
  编码格式中各域含义如下。
  · 《opcode》:确定具体指令。
  · S:标识指令是否影响程序状态寄存器CPSR条件标志。
  · Rd:指令操作的目的寄存器。
  · Rn:指令第一源操作数。
  · bit[11∶0]:移位操作,详见本章移位操作一节。
  · bit[25]:被用来区分是立即数移位操作还是寄存器移位操作。
  如果指令编码出现下面情况:bit[25] = 0并且bit[4] = 1并且bit[7] = 1,则指令并非数据处理指令,它可能是Load/Store指令或算术指令。
  4.1.3 移位操作
  数据处理指令是在算术逻辑单元ALU中完成。ARM处理器一个显著特征就是可以在操作数进入ALU之前,对操作数进行指定位数的左移或右移操作。这种功能明显增强了数据处理操作的灵活性。
  移位操作可能产生进位,更新程序状态寄存器CPSR的进位标志C。移位操作有下面3种基本方式。
  1.立即数方式
  没有任何一条ARM指令可以包含一个32位的立即数,数据处理指令编码格式中,第二个操作数有12位。指令的编码格式如图4.1所示。
  指令中的立即数是由一个8 bit的常数移动4 bit偶数位(0,2,4,…,26,28,30)得到的。所以,每一条指令都包含一个8 bit的常数X和移位值Y,得到的立即数=X循环右移(2×Y)。
  注意8位立即数一定要移偶数位。
  下面列举了一些有效的立即数。
  0xFF、0x104、0xFF0、0x FF00、0x FF000、0x FF000000、0x F000000F
  下面是一些无效的立即数。
  0x101、0x102、0x FF1、0x FF04、0x FF003、0x FFFFFFFF、0x F000001F
  下面是一些应用立即数的指令。
  MOV r0,#0 ;送0到r0
  ADD r3,r3,#1 ;r3的值加1
  CMP r7,#1000 ;r7的值和1000比较
  BIC r9,r8,#0x FF00 ;将r8中8~15位清零,结果保存在r9中
  2.寄存器方式
  寄存器的值可以被直接用于数据操作指令,如:
  MOV r2,r0 ;r0的值送r2
  ADD r4,r3,r2 ;r2加r3,结果送r4
  CMP r7,r8 ;比较r7和r8的值
  3.寄存器移位方式
  寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效的使用移位寄存器,可以增加代码的执行效率。
  具体的移位(或者循环移位)方式有下面几种。
  · ASR:算术右移。
  · LSL:逻辑左移。
  · LSR:逻辑右移。
  · ROR:循环右移。
  · RRX:扩展的循环右移。
  以上5种移位方式,移位值均可以由立即数或寄存器指定。下面是一些在指令中使用了移位操作的例子。
  ADD r2,r0,r1,LSR #5
  MOV r1,r0,LSL #2
  RSB r9,r5,r5,LSL #1
  SUB r1,r2,r0,LSR #4
  MOV r2,r4,ROR r0
ARM 数据处理指令
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1MDD品牌三极管BC807数据手册
  2. 3.00 MB   |  次下载  |  免费
  3. 2MDD品牌三极管BC817数据手册
  4. 2.51 MB   |  次下载  |  免费
  5. 3MDD品牌三极管D882数据手册
  6. 3.49 MB  |  次下载  |  免费
  7. 4MDD品牌三极管MMBT2222A数据手册
  8. 3.26 MB  |  次下载  |  免费
  9. 5MDD品牌三极管MMBTA56数据手册
  10. 3.09 MB  |  次下载  |  免费
  11. 6MDD品牌三极管MMBTA92数据手册
  12. 2.32 MB  |  次下载  |  免费
  13. 7STM32G474 HRTIME PWM 丢波问题分析与解决
  14. 1.00 MB   |  次下载  |  3 积分
  15. 8新能源电动汽车高压线束的铜铝连接解决方案
  16. 2.71 MB   |  次下载  |  2 积分

本月

  1. 1爱华AIWA HS-J202维修手册
  2. 3.34 MB   |  37次下载  |  免费
  3. 2PC5502负载均流控制电路数据手册
  4. 1.63 MB   |  23次下载  |  免费
  5. 3NB-IoT芯片厂商的资料说明
  6. 0.31 MB   |  22次下载  |  1 积分
  7. 4H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
  8. 0.63 MB   |  6次下载  |  1 积分
  9. 5UWB653Pro USB口测距通信定位模块规格书
  10. 838.47 KB  |  5次下载  |  免费
  11. 6技嘉H110主板IT8628E_BX IO电路图资料
  12. 2.61 MB   |  4次下载  |  1 积分
  13. 7苏泊尔DCL6907(即CHK-S007)单芯片电磁炉原理图资料
  14. 0.04 MB   |  4次下载  |  1 积分
  15. 8苏泊尔DCL6909(即CHK-S009)单芯片电磁炉原理图资料
  16. 0.08 MB   |  2次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935137次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191439次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183353次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81602次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73822次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65991次下载  |  10 积分