资料介绍
6.11 CMP比较指令
1.指令的编码格式
CMP(Compare)比较指令使用寄存器Rn的值减去operand2的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。
指令的编码格式如图6.12所示。
图6.12 CMP指令编码格式
2.指令的语法格式
CMP{《cond》} 《Rn》,《shifter_operand》
① 《cond》
为指令编码中的条件域。它指示指令在什么条件下执行。当《cond》忽略时,指令为无条件执行(cond=AL(Alway))。
② 《Rn》
指定第一个源操作数寄存器。
③ 《shifter_operand》
详见TST指令。
3.指令操作的伪代码
指令操作的伪代码如下面程序段所示。
If ConditionPassed{cond} then
ALU_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 Falg=OverflowFrom{Rn-shifter_operand}
4.指令举例
【例6.11】CMP指令举例。
CMP允许把一个寄存器的内容与另一个寄存器的内容或立即值进行比较,更改状态标志来允许进行条件执行。它进行一次减法,但不存储结果,而是正确地更改标志位。标志位表示的是操作数1与操作数2比较的结果(其可能为大、小、相等)。如果操作数1大于操作操作数2,则此后的有GT后缀的指令将可以执行。
显然,CMP不需要显式的指定S后缀来更改状态标志。
(1)下面的指令比较R1和立即数10并设置相关的标志位。
CMP R1,#10
(2)下面指令比较寄存器R1和R2中的值并设置相关的标志位。
CMP R1,R2
通过上面的例子可以看出,CMP指令与SUBS指令的区别在于CMP指令不保存运算结果,在进行两个数据大小判断时,常用CMP指令及相应的条件码来操作。
1.指令的编码格式
CMP(Compare)比较指令使用寄存器Rn的值减去operand2的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。
指令的编码格式如图6.12所示。
图6.12 CMP指令编码格式
2.指令的语法格式
CMP{《cond》} 《Rn》,《shifter_operand》
① 《cond》
为指令编码中的条件域。它指示指令在什么条件下执行。当《cond》忽略时,指令为无条件执行(cond=AL(Alway))。
② 《Rn》
指定第一个源操作数寄存器。
③ 《shifter_operand》
详见TST指令。
3.指令操作的伪代码
指令操作的伪代码如下面程序段所示。
If ConditionPassed{cond} then
ALU_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 Falg=OverflowFrom{Rn-shifter_operand}
4.指令举例
【例6.11】CMP指令举例。
CMP允许把一个寄存器的内容与另一个寄存器的内容或立即值进行比较,更改状态标志来允许进行条件执行。它进行一次减法,但不存储结果,而是正确地更改标志位。标志位表示的是操作数1与操作数2比较的结果(其可能为大、小、相等)。如果操作数1大于操作操作数2,则此后的有GT后缀的指令将可以执行。
显然,CMP不需要显式的指定S后缀来更改状态标志。
(1)下面的指令比较R1和立即数10并设置相关的标志位。
CMP R1,#10
(2)下面指令比较寄存器R1和R2中的值并设置相关的标志位。
CMP R1,R2
通过上面的例子可以看出,CMP指令与SUBS指令的区别在于CMP指令不保存运算结果,在进行两个数据大小判断时,常用CMP指令及相应的条件码来操作。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 三菱PLC指令分享
- 浅析快速处理导热油管腐蚀渗漏的方法 2次下载
- 浅析电容倍增器的原理及应用 李文元 70次下载
- 浅析碟式离心机的分离影响因素及模型 3次下载
- 浅析USB3.0定义.xlsx下载 37次下载
- CMP01:FAST Precision比较器过时数据表
- CMP-02:低输入电流精密比较器过时数据表
- CMP-01:快速精密比较器过时数据表
- CMP04:四路低功耗精密比较器数据表
- CMP401/CMP402:23 ns和65 ns低压比较器数据表
- STM32L476 FPU 执行效率之比较浅析资料下载
- 数据处理指令之TEQ测试相等指令分析 1次下载
- 数据处理指令CMN之负数比较指令分析 1次下载
- 比较器(Comparator_CMP)介绍 0次下载
- CMP指令应用脉冲定位控制程序
- 化学机械研磨抛光CMP技术详解 1641次阅读
- CMP抛光垫有哪些重要指标? 1028次阅读
- 西门子PLC编程指令详解 三菱FX系列PLC的基本逻辑指令详解 1737次阅读
- PLC传送与比较指令用法 6103次阅读
- SIMATIC S7-1500 PLC小于比较指令与大于等于比较指令简述 9468次阅读
- SIMATIC S7-1500 PLC等于比较指令与不等于比较指令简述 5811次阅读
- CMP功能介绍及应用实例 4534次阅读
- 16位运算对比较值S1和比较源S2内容进行比较 1074次阅读
- STEP 7 Safety V17 指令-CMP 2023次阅读
- S7-1200比较操作-变量指令说明 4357次阅读
- 三菱PLC的CMP比较指令 4.5w次阅读
- PLC的编程方法与应用指令的比较 2405次阅读
- PLC的相关指令详细介绍 3475次阅读
- 西门子PLC编程指令大全包括:位逻辑指令,比较指令,转换指令等14个 3.3w次阅读
- Cortex-M系列处理器指令集_指令集特性比较总结 7689次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多