CMN指令将寄存器Rn中的值加上< shifter_operand > 表示的数值,根据操作的结果更新CPSR中相应的条件标志位,后面的指令就可以根据CPSR中相应的条件标志位来判断是否执行了。

指令的编码格式

指令的语法格式

CMN{< cond >} {S} < Rd >, < Rn> ,< shifter_operand >

其中:

  • < cond >为指令执行的条件码。当< cond >忽略是指令为无条件执行。

  • < Rn > 寄存器为第1个操作数所在的寄存器。

  • < shifter_operand >为第2个操作数。计算方法见之前介绍。

指令操作的伪代码

if ConditionPassed<cond> thenalu_out=Rn + shifter_operand
​    N Flag=alu_out[31]​Z Flag=if alu_out==0 then 1 else 0​C Flag=NOT BorrowFrom(Rn + shifter_operand)​V Flag=OverflowFrom(Rn + shifter_operand)

指令的使用

CMN指令将寄存器< Rn >中的值加上< shifter_operand >表示的值,根据加法操作的结果设置CPSR中相应的条件标志位。寄存器< Rn >中的值加上< shifter_operand >表示的值对CPSR中条件标志位的影响,与寄存器< Rn >中的值减去< shfter_operand >表示的数值的相反数对CPSR中条件标志位的影响有细微的差别。当第2个操作数位0或者0x80000000时,二者结果不同,例如:

CMP Rn, #0 ;C=1
CMN Rn, #0 ;C=0

刘帅嵌入式系统-CMN基于相反数的比较指令相关推荐

  1. 刘帅嵌入式系统-SUB减法指令

    SUB指令从寄存器< Rn >中减去< shifter_operand > 表示的数值,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果更新CPSR中相 ...

  2. 无符号有符号乘法_刘帅嵌入式系统-乘法指令

    ARM有两类乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位:另一类为64位的乘法指令,即乘法操作的结果为64位.两类指令共有以下6条. MUL:32位乘法指令 MLA:32位带加数的乘法指 ...

  3. 刘帅嵌入式系统-BLX(1)

    第一种格式的BLX指令记作BLX(1),BLX(1)指令从ARM指令集跳转到指定的目标地址,并将程序状态切换为Thumb状态,同时将PC寄存器的内容复制到LR寄存器中. 本指令属于无条件执行的指令(即 ...

  4. 刘帅嵌入式系统-BLX(2)

    第二种格式的BLX指令记作BLX(2).BLX(2)指令从ARM指令集跳转到指定的目标地址,目标地址的指令可以是ARM指令,也可以是Thumb指令.目标地址放在指令中的寄存器中,该地址的bit[0]值 ...

  5. 刘帅嵌入式系统-EOR逻辑异或操作指令

    EOR指令将< shifter_operand > 表示的数值与寄存器< Rn >值按位做逻辑异或操作,并把结果保存到目标寄存器< Rd > 中,同时根据操作的结果 ...

  6. arm体系结构与编程_教程:如何学习嵌入式系统(基于ARM平台)

    一.嵌入式系统的概念 着重理解"嵌入"的概念 主要从三个方面上来理解. 1.从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是 ...

  7. 嵌入式系统项目设计——基于LED、按键、蜂鸣器的打地鼠游戏(完整代码)

    内容摘自上学期嵌入式系统课程设计最终的实验报告,因为CSDN不支持上传word资料,所以我就摘录下来写进文章里了,希望可以帮助到你 第一章 绪论 1.1选题背景 打地鼠游戏是一种非常受小孩子欢迎的游戏 ...

  8. 如何学习嵌入式系统(基于ARM平台)

    一.嵌入式系统的概念        着重理解"嵌入"的概念 主要从三个方面上来理解.     1.从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构 ...

  9. 【嵌入式系统】基于触摸屏控制的多功能电子钟

    基于触摸屏控制的多功能电子钟 仅供参考,别抓我,别抄我,球球了 开发板:STM32F407ZGT6 github代码和报告

最新文章

  1. 遭遇错误:ORA-01031
  2. dev 点击子控件触发panelcontrol事件_LINUX IIO子系统分析之二 IIO子系统数据结构分析...
  3. pytorch图像和张量的相互转换_[Pytorch]Pytorch的tensor变量类型转换
  4. 计算机加一块硬盘,老电脑卡顿不一定没救了 加一块SSD就能焕发新生
  5. 使用html+css+js实现3D相册
  6. php线程安全和非线程安全_安全调用线程的步骤
  7. php 手动搭建环境
  8. 进程间通信无名管道 --- pipe 典型的生产者消费者模式
  9. 李宏毅机器学习笔记day3
  10. 微信小程序后端用python_使用django开发微信小程序后端
  11. 竹云+巨杉丨互信认证 安全可靠
  12. 跨境电商必知的交叉销售和追加销售:2022终极指南
  13. halcon机器视觉玩转车牌识别-超人视觉罗超
  14. 基于JavaEE的智能化网吧服务系统的设计与实现毕业设计论文
  15. wchar* char*相互转换
  16. ESP32 测试(十):ESP32 Wi-Fi 和 蓝牙 并存时开始睡眠模式的电流功耗
  17. android图片压缩工具类
  18. Incorrect string value: ‘\xE4\xBB\xA3\xE5\x8F\xB7...‘ for column
  19. 高通骁龙855,麒麟980,A12,Exynos 9820芯片参数比较
  20. JavaSE(字符流、IO资源的处理、属性集、ResourceBundle工具类、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包)

热门文章

  1. cmake教程(cmake教程pdf)
  2. PR序列、导出设置详解
  3. PLC编程实例及经验设计法详解
  4. 获取周一到周日的日期
  5. Java爬取并下载酷狗TOP500歌曲
  6. SE14 调整并激活数据库
  7. 【操作系统】编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。请用P、V原语(wait和signal操作)实现爸爸、儿子、女儿三
  8. 《上古天真论》第四讲文字版
  9. Python 简易版小工具 | 计算天数
  10. 51nod 1326 遥远的旅途 最短路建模