ARM指令分类及其寻址方式PPT教学课件.pptx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
ARM 指令分类及其寻址方式 ARM 指令集概要 ARM 微处理器的指令长度可以是 32 位(在 ARM 状态下),也可以为 16 位(在 Thumb 状态下)。 ARM 微处理器中支持字节(8 位)、半字(16 位)、字(32 位)三种数据类型。其中,字需要 4 字节对齐(地址的低两位为 0)、半字需要 2 字节对齐(地址的最低位为 0)。 ARM 汇编指令格式 ARM 指令的典型编码格式为:{cond} {opcode} {S} {Rn} {Rd} {shifter_operand},其中 {cond} 是指令执行的条件编码、{opcode} 是指令操作符编码、{S} 决定指令的执行是否影响 CPRS 的值、{Rn} 是包含第一个源操作数的寄存器编码、{Rd} 是目标寄存器编码、{shifter_operand} 是第二个源操作数。 ARM 指令的条件码域 大多 ARM 指令都可以条件执行,也就是根据 CPSR 中的条件码的状态决定是否执行该指令。只有在 CPSR 中的条件码标志满足指定的条件时,带条件码的指令才可以执行,否则指令被忽略(相当于一条空操作 NOP 指令)。每一条 ARM 指令编码中包含 4 位的条件码,位于指令编码的最高 4 位[31:28]。条件码共有 16 种,每种条件码可用两个字符(条件码的助记符)表示,这两个字符可以添加在指令助记符的后面和指令同时使用。 ARM 寻址方式 ARM 寻址方式有多种,包括立即寻址、寄存器寻址、寄存器间接寻址、寄存器移位寻址、基址变址寻址等。 立即寻址 立即寻址就是在指令中直接给出操作数的值,例如 ADD R0, R0, #0x1;R0 ← R0 + 1。 寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,例如 ADD R0, R1, R2;R0 ← R1 + R2。 寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中,例如 LDR R0, [R1];R0 ← [R1]。 寄存器移位寻址 寄存器移位寻址就是将寄存器中的值移位后作为操作数,例如 ADD R3, R2, R1, LSL #2;R3 ← R2 + 4*R1。 基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址,例如 LDR R0, [R1, #4];R0 ← [R1 + 4]。
剩余26页未读,继续阅读
- 粉丝: 1402
- 资源: 52万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JavaScript函数
- java-leetcode题解之Range Sum Query 2D - Mutable.java
- java-leetcode题解之Random Pick Index.java
- java-leetcode题解之Race Car.java
- java-leetcode题解之Profitable Schemes.java
- java-leetcode题解之Product of Array Exclude Itself.java
- java-leetcode题解之Prime Arrangements.java
- MCU51-51单片机
- java-leetcode题解之Power of Two.java
- java-leetcode题解之Power of Three.java