手机版

第3章 ARM指令集寻址方式

发布时间:2024-11-10   来源:未知    
字号:

第3章 ARM指令集寻址方式ARM指令寻址方式可分为四大类: 数据处理指令寻址 Load/Store指令的寻址 批量Load/Store指令的寻址 协处理指令寻址。

TM

内容提要3.1 3.2 ARM指令的编码格式 数据处理指令寻址方式

3.33.4 3.5

Load/Store指令寻址批量Load/Store指令寻址方式 协处理器指令寻址方式

TM

2

3.1

ARM指令的编码格式

一般编码格式指令条件码

TM

3

一般编码格式

每条ARM指令占有4个字节,其指令长度为32位

cond(bit[31:28]) cond(bit[31:28]) 指令执行的条件码; 指令执行的条件码 type(bit[27:26])type(bit[27:26]) 指令类型码指令类型码 I (bit[25])第二操作数类型标志码。数据处理指令中I=1表示第二操 作数是立即数,I=0表示第二操作数是移位寄存器 opcode(bit[24:21]) 指令操作码; S (bit[20]) 决定指令的操作结果是否影响CPSR ; Rn (bit[19:16]) 包含第一个操作数的寄存器编码; Rd (bit[15:12]) 目标寄存器编码; Operand2(bit[11:0) 指令第二个操作数。TM

4

Type

描述

0001

数据处理指令及杂类Load/Store指令Load/Store指令

1011

批量Load/Store指令及分支指令协处理器指令与软中断指令

TM

5

指令条件码条件码 0000 0001 0010 0011 助记符后缀 EQ NE CS CC 标志 Z置位 Z清零 C置位 C清零 含义 相等 不相等 无符号数大于或等于 无符号数小于

01000101 0110 0111

MIPL VS VC

N置位N清零 V置位 V清零

负数正数或零 溢出 未溢出

10001001 1010 1011 1100 1101 1110

HILS GE LT GT LE AL

C置位Z清零C清零Z置位 N等于V N不等于V Z清零且(N等于V) Z置位或(N不等于V) 忽略

无符号数大于无符号数小于或等于 带符号数大于或等于 带符号数小于 带符号数大于 带符号数小于或等于 无条件执行

1111

NV

从不执行(不要使用)TM

6

条件码示例: C代码: if(a > b) a++; else 对应的汇编代码: CMP R0,R1 ;R0与R1比较 ADDHI R0,R0,#1

b++;

;若R0>R1,则R0=R0+1ADDLS R1,R1,#1 ;若R0≤R1,则R1=R1+1

TM

7

ARM汇编指令语法格式:<opcode>{<cond>}{S}<Rd>,<Rn>,<operand2>

注:在上面的基本格式中,“<>”符号内的项是必需的,“{}” 符 号内的项是可选的。 例如,<opcode>是指令助记符,这是必须书写的;而 {<cond>}为指令执行条件,是可选项。若不书写,则使用默 认条件AL(无条件执行)。TM

8

3.2 数据处理指令寻址方式

数据处理指令第2操作数的构成方式具体寻址类型

TM

9

数据处理指令第2操作数的构成方式 立即数方式

每个立即数由一个8位的常数进行32位循环 右移偶数位得到,其中循环右移的位数由一个 4位二进制的两倍表示。即:

<immediate>=immed_8进行32位循环右移( 2*rotate_4)位10

TM

10

?

思考与练习

1.以下8位立即数是否合法?0x0103C0000x12800000

× √

可以由0x4A循环右移10位得到

2.请列举2个立即数?0x4000003B(0xED循环右移2位) 0x0016C000(0x5B循环右移18位)

TM

11

例题:

SUBS R0,R0,#1 并且影响标志位

;R0减1,结果放入R0,

MOV R0,#0xFF000 ;将立即数0xFF000装 入R0寄存器“0x”表示

注:立即数要以“#”号为前缀,16进制数值时以

TM

12

寄存器方式 操作数即为寄存器的数值 如: MOV R3,R2

ADD R0,R1,R2

TM

13

寄存器移位方式 操作数为寄存器的数值做相应的移位而得 到。在ARM指令中移位操作包括逻辑左移 、逻辑右移、算术左移、算术右移、循环 右移和带扩展的循环右移

TM

14

TM

15

例MOV R0,R2,LSL #3 ;R2的值左移3位,结

;果放入R0,;即是 R0=R2×8

ANDS

R1,R1,R2,LSL R3 ;R2的值左移R3位,;然后和R1相,“与”操作,结果放入

R1

TM

16

第3章 ARM指令集寻址方式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)