汇编指令-CMP、TEQ

举报
嵌入式与Linux那些事 发表于 2022/03/28 23:40:19 2022/03/28
【摘要】 cmp:(compare)指令进行比较两个操作数的大小   格式: cmp oprd1,oprd2   比较oprd1和oprd2操作数,然后通过助记符来实现想要的判断。 teq: (test eq...

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

  格式: cmp oprd1,oprd2

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

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

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

   cmp和teq助记符如下

在这里插入图片描述
在这里插入图片描述
cmp使用实例实例1:

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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  跳转    

  
 
  • 1
  • 2
  • 3
  • 4

teq使用实例实例1:

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

  
 
  • 1
  • 2

文章来源: blog.csdn.net,作者:嵌入式与Linux那些事,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_16933601/article/details/104329757

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。