ARM cmp命令详解 您所在的位置:网站首页 arm指令的基本格式包含 ARM cmp命令详解

ARM cmp命令详解

2024-07-11 18:22| 来源: 网络整理| 查看: 265

ARM指令的基本格式

ARM指令的基本格式为:

   {}  {S}  ,    { , }

其中,内的项是必需的,{  }内的项是可选的。

(1)Opcode项

Opcode是指令助记符,即操作码,说明指令需要执行的操作,在指令中是必需的。

(2)Cond项(command)

Cond项表明了指令的执行的条件,每一条ARM指令都可以在规定的条件下执行,每条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码用2个字符表示,这两个字符可以添加至指令助记符的后面,与指令同时使用。当指令的执行条件满足时,指令才被执行,否则指令被忽略。如果在指令后不写条件码,则使用默认条件AL(无条件执行)。

指令的条件码

条 件 码

助记符后缀

标    志

含    义

0000

EQ

Z置位

相等equal

0001

NE

Z清零

不相等not equal

0010

CS

C置位

无符号数大于或等于Carry Set

0011

CC

C清零

无符号数小于

0100

MI

N置位

负数minus

0101

PL

N清零

正数或零plus

0110

VS

V置位

溢出

0111

VC

V清零

没有溢出

1000

HI

C置位Z清零

无符号数大于high

1001

LS

Z置位C清零

无符号数小于或等于less

1010

GE

N等于V

带符号数大于或等于

1011

LT

N不等于V

带符号数小于least

1100

GT

Z清零且(N等于V)

带符号数大于great

1101

LE

Z清零或(N不等于V)

带符号数小于或等于

1110

AL

忽略

无条件执行all

1111

NV 

never 

 

条件码应用举例:

例:比较两个值大小,并进行相应加1处理,C语言代码为:

if  ( a > b )  a++;

else  b++;

对应的ARM指令如下(其中R0中保存a 的值,R1中保存b的值):

CMP  R0, R1  ; R0与R1比较,做R0-R1的操作

ADDHI  R0, R0, #1  ;若R0 > R1, 则R0 = R0 + 1

ADDLS  R1, R1, #1  ; 若R0 oprd2 若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有