ARM学习笔记(四)






ARM指令集的概要介绍

ARM指令集的分类

跳转指令

数据处理指令

程序状态寄存器(PSR)传输指令

Load/Store指令

协处理器指令

异常中断产生指令

ARM指令的语法格式

<opcode>[cond][S] <Rd>,<Rn>,<shifter_operand>

其中:

Opcode:指令助记符;

[cond]:可选的指令执行条件;

[S]:决定指令的操作是否影响CPSR的值;

<Rd>:目标寄存器;

<Rn>:表示包含第一个操作数的寄存器;

<shifter_operand>:表示第二个操作数。

ARM指令的编码格式

ARM指令字长固定为32位,一条典型的ARM指令的编码格式如下:

31    28

27    25

24    21

20

19    16

15    12

11     8

7      0

cond

001

opcode

S

Rn

Rd

shifter_operand

 

ARM指令的条件码域

大多数ARM指令都可以根据CPSR中的标志位的值来决定是否执行该指令。ARMV5以前所有指令都是条件执行的,从ARMV5以后引入了一些必须无条件执行的指令。

 

每一条ARM指令可以包含四位的条件码,条件码共有16个,各条件吗的助记符及含义如下:

条件码(cond)

条件码助记符

含义

CPSR中条件标志位的值

0b0000

EQ

相等(Equal)

Z==1(Z set)

0b0001

NQ

Not equal

Z==0(Z clear)

0b0010

CS/HS

Carry Set/unsigned higher or same

无符号数大于/等于

C==1(C set)

0b0011

CC/LO

Carry clear/unsigned lower

无符号数小于

C==0(C clear)

0b0100

MI

Minus/negative(负数)

N==1

0b0101

PL

Plus/positive or zero(非负数)

N==0

0b0110

VS

Overflow(上溢出)

V==1

0b0111

VC

No overflow(没有上溢出)

V==0

0b1000

HI

Unsigned higer(无符号数大于)

C==1 and Z==0

0b1001

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值