ARM数据处理指令寻址方式 |
||||||||||||||||||||||||||||||||||||
ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器传输指令、Load/Store指令、协处理器指令和异常中断产生指令。根据使用的指令类型不同,指令的寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式。本文主要介绍一下ARM数据处理指令寻址方式。 数据处理指令的基本语法格式如下: <opcode> {<cond>} {S} <Rd>,<Rn>,<shifter_operand> 其中,<shifter_operand>有11种形式,如表1-1所示。 表1-1 <shifter_operand>的寻址方式
数据处理指令寻址方式可以分为以下几种。 (1)立即数寻址方式; 1.立即数寻址方式 指令中的立即数是由一个8bit的常数移动4bit偶数位(0,2,4,…,26,28,30)得到的。所以,每一条指令都包含一个8bit的常数X和移位值Y,得到的立即数 = X循环右移(2×Y)。如图1-1所示
下面列举了一些有效的立即数: 下面是一些无效的立即数: 下面是一些应用立即数的指令: MOV R0,#0 ;送0到R0 2.寄存器寻址方式 寄存器的值可以被直接用于数据操作指令,这种寻址方式是各类处理器经常采用的一种方式,也是一种执行效率较高的寻址方式,如: MOV R2,R0 ;R0的值送R2 3.寄存器移位寻址方式 寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效地使用移位寄存器,可以增加代码的执行效率。 下面是一些在指令中使用了移位操作的例子: ADD R2,R0,R1,LSR #5 华清远见课程推荐:ARM开发培训班(FSATC1001)本课程在涵盖了ARM公司授权培训课程全部内容基础上,结合项目实际,进一步增加了更多丰富的实用内容,例如ARM接口开发,从零编写bootloader引导Linux系统,大约占全部课程的40%内容,这些内容不仅为其他课程打下坚实基础,而且可以使学员具备更强的实际动手能力,更贴近企业用人需求。本课程的升级同时得到了ARM公司的首肯和大力支持。 热点链接: |