前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汇编指令-CMP、TEQ(5)

汇编指令-CMP、TEQ(5)

作者头像
诺谦
发布2018-01-03 16:20:42
1.2K0
发布2018-01-03 16:20:42
举报
文章被收录于专栏:Linux驱动Linux驱动

 cmp:(compare)指令进行比较两个操作数的大小 

格式: cmp oprd1,oprd2

比较oprd1和oprd2操作数,然后通过助记符来实现想要的判断。

teq: (test equal)测试相等,该指令通常用于比较操作数1和操作数2是否相等。

格式: teq oprd1,oprd2 TEQ指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位的异或运算,并根据运算结果更新CPSR中条件标志位的值。该指令通常用于比较操作数1和操作数2是否相等。(EOR指令也是实现异或运算,只是不更新CPSR)

 cmp和teq助记符如下

助记符

含    义

EQ

相等equal

NE

不相等not equal

CS

无符号数大于或等于Carry Set

CC

无符号数小于

MI

负数minus

PL

正数或零plus

VS

溢出

VC

没有溢出

HI

无符号数大于high

LS

无符号数小于或等于less

GE

带符号数大于或等于

LT

带符号数小于less than

GT

带符号数大于great than

LE

带符号数小于或等于

AL

无条件执行all

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

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

ADDLS  R1, R1, #1  ;                              若R0 <= R1, LS为真,则R1 = R1 + 1

cmp使用实例实例2:

adr r0, _start   ldr r1, _TEXT_BASE  cmp r0, r1                                          r0与r1比较,做r0-r1的操作 blne cpu_init_crit                                  若ne(r0地址与r1地址不相等)为真,执行bl cpu_init_crit  跳转    

teq使用实例实例1:

teq r0, r1                                                R0与R1是否相等                ADDeq  R0, R0, #1  ;                              若R0 == R1, eq为真,则R1 = R1 + 1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档