ARM 指令集 比较指令
译注:CMP 和 CMP 是算术指令,TEQ 和 TST 是逻辑指令。把它们归入一类的原因是它们的 S 位总是设置的,就是说,它们总是影响标志位。
CMN : 比较取负的值
(Compare Negative)
CMN{条件}{P} , status = op_1 - (- op_2)
CMN
同于 CMP
,但它允许你与小负值(操作数 2 的取负的值)进行比较,比如难于用其他方法实现的用于结束列表的 -1。这样与 -1 比较将使用:
CMN R0, #1 ; 把 R0 与 -1 进行比较
详情参照 CMP
指令。
CMP : 比较
(Compare)
CMP{条件}{P} , status = op_1 - op_2
CMP
允许把一个寄存器的内容如另一个寄存器的内容或立即值进行比较,更改状态标志来允许进行条件执行。它进行一次减法,但不存储结果,而是正确的更改标志。标志表示的是操作数 1 比操作数 2 如何(大小等)。如果操作数 1 大于操作操作数 2,则此后的有 GT 后缀的指令将可以执行。
明显的,你不需要显式的指定 S
后缀来更改状态标志... 如果你指定了它则被忽略。
TEQ : 测试等价
(Test Equivalence)
TEQ{条件}{P} , Status = op_1 EOR op_2
TEQ
类似于 TST
。区别是这里的概念上的计算是 EOR 而不是 AND。这提供了一种查看两个操作数是否相同而又不影响进位标志(不象 CMP
那样)的方法。加上 P
后缀的 TEQ
还可用于改变 R15 中的标志(在 26-bit 模式中)。详情请参照 psr.html,在 32-bit 模式下如何做请参见这里。
TST : 测试位
(Test bits)
TST{条件}{P} , Status = op_1 AND op_2
TST
类似于 CMP
,不产生放置到目的寄存器中的结果。而是在给出的两个操作数上进行操作并把结果反映到状态标志上。使用 TST
来检查是否设置了特定的位。操作数 1 是要测试的数据字而操作数 2 是一个位掩码。经过测试后,如果匹配则设置 Zero 标志,否则清除它。象 CMP
那样,你不需要指定 S
后缀。
TST R0, #%1 ; 测试在 R0 中是否设置了位 0。
ARM 指令集 比较指令相关推荐
- 【汇编语言与计算机系统结构笔记01】x86/MIPS/ARM指令集概述与特性,一篇HPCA引发的思考(商业生态的决定性作用)
资源Bilibili AV46914471 + AV57921488 汇编语言与计算机系统结构 清华大学 张悠慧 本次笔记内容: 01.汇编语言与计算机系统结构 02.汇编基础知识--指令集综述 文章 ...
- ARM 指令集 和 Thumb 指令集
From:https://gitee.com/lsliushuang/ASM/blob/master/arm汇编.txt ARM 汇编指令集汇总:https://blog.csdn.net/qq_40 ...
- ARM指令集与Thumb指令集--区别关联--汇编指令 BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式
BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式 A 一.现在先区分下ARM指令集与Thumb指令集 Thumb 指令可以看作是 ARM 指 ...
- ARM 指令集跳转指令
一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC 写入跳转地址值. 通过向程序计数器PC 写入跳转地 ...
- x86指令集和arm指令集部分对比
本文主题:本文主要对比了x86 ISA 和 arm ISA的部分区别. 目录 一.x86 ISA 1.指令组成 二.指令各部分解析 1.Instruction Prefixes(可选部分) 2.Opc ...
- ARM指令集复习 | 基本指令用法
文章目录 1.ARM指令集概述 2.ARM的寻址方式 2.1 立即寻址 2.2 寄存器寻址 2.3 多寄存器及块拷贝寻址 2.4 堆栈寻址 2.5 相对寻址 3.ARM指令集 3.1 存储器访问(L/ ...
- ARM指令集 VS Thumb指令集
1 thumb指令集概述 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集. Thumb指令集是ARM指令集的一个子集 ...
- ARM指令集、Thumb指令集、Thumb-2指令集
Thumb‐2是一个突破性的指令集.它强大,它易用,它轻佻,它高效.Thumb‐2是16位Thumb指令集的一个超集,在Thumb‐2中,16位指令首次与32位指令并存,结果在Thumb状态下可以做的 ...
- 【ARM】协处理器指令
00. 目录 文章目录 00. 目录 01. 协处理器指令概述 02. ARM寄存器到协处理器寄存器的数据传送指令MCR 2.1 指令编码格式 2.2 指令的语法格式 2.3 指令举例 2.4 指令的 ...
- ARM和NEON指令 very gooooooood.............
http://blog.csdn.net/chshplp_liaoping/article/details/12752749 在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速.目前在移 ...
最新文章
- 无服务器仍然离不开基础设施管理
- graph 关系图 设置
- 用原生JavaScript实现淡入淡出轮播图
- php sql 去除重复数据,MSSQL_快速删除重复记录,SQL Server如何实现?,如果一张表的数据达到上百万 - phpStudy...
- 无法打开文件“libboost_python-vc120-mt-sgd-1_59.lib”
- Java、Android、oc冒泡排序算法随笔
- this--学习笔记
- C++多线程之使用Mutex和Critical_Section(转载)
- 百度360之争的背后
- 性能测试--网页fps测试
- mysql 自己的ip怎么查看_如何查看连接mysql的ip地址
- 小米 note3 android,小米NOTE3 MIUI9.6稳定版 开启全面屏手势和屏蔽经典物理按键全攻略...
- 前端开发——Vue 监听组件生命周期
- 研发人员专用表情包上架了
- 常用的web服务器软件整理(转载)
- Excel使用记录之分页预览与打印标题
- 河南召开科创板重点后备企业上市座谈会 60余家企业参会(附名单)
- 达芬奇调色 Blackmagic Design DaVinci Resolve Studio 17 中文版,整合剪辑、视觉特效、动态图形、调色和音频后期制作
- 毕业设计-基于深度学习的数字病理图像分割
- 在 Windows 下查看开放端口
热门文章
- JScrollPane恢复正常滚动量
- (宏)Word修改段落行距为固定值24磅
- CloudStack核心类ApiServlet、ApiServer、ApiDispatcher、GenericDaoBase源码分析
- robotframework--登录接口,post传递多个参数、及获取content中指定属性的值(5)
- javascript 方法总结(Array篇)
- SqlServer Alwayson 搭建报错:19405
- Tomcat 日志文件分割
- Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源代码实现
- 中国快递包裹总量的预测-基于SARIMA模型
- nil,NULL,NSNull的区别