CMP, tst arm 指令 (12)

CMP {条件} 操作数1 , 操作数2

解释: CMP 用于比较另个寄存器的值,或者是 两个立即数的值,但是并不存储结果,会将 结果的正负值保存到CPSR 的condition 位中。

举例:

CMP,R1,R0 , 将R1-R0

TST {条件} 操作数1 , 操作数2

用于将两个寄存器或者 两个立即数的比较, 就是 将两个数 按位与, 这就引出了 位掩码。

操作数1 是要操作的数, 操作数2 为掩码,比如操作数2 0x00000010, 两个数 TST 之后,只会留下第 操作数1 的第5位。 便可以判断这个位是不是1 。

其结果是 0 或者是1 , 并更新 CPSR 的 Z 位, 我不知道这个位 是什么。

截图如下;

举例:

TST, R1 , #%1 %表示是一个二进制数。 也就是在判断最低位,那直接 #0x1 不就行了。

但是 这个条件机器码 与 NZCV是对不上的。

疑问: 这个后缀与 NZCV 改怎么对应呢?

相关推荐
Xの哲學2 分钟前
Linux链路聚合深度解析: 从概念到内核实现
linux·服务器·算法·架构·边缘计算
wanhengidc9 分钟前
具有ARM架构云手机的功能
运维·服务器·arm开发·科技·智能手机·云计算
代码游侠17 分钟前
应用——管道与文件描述符
linux·服务器·c语言·学习·算法
wefg122 分钟前
【Linux】环境变量
linux·运维·服务器
扫地生大鹏22 分钟前
Linux登录用户名密码正确,报错Linux 登录报module is unknow
linux·运维·服务器
可爱又迷人的反派角色“yang”28 分钟前
ansible基本命令与剧本编写(二)
linux·运维·ansible
老王熬夜敲代码28 分钟前
linux系统IO
linux·笔记
Thexhy31 分钟前
基础篇:Redis核心命令及用法
java·linux·redis
不染尘.34 分钟前
虚拟网络环境及socket概述
linux·c语言·网络·windows·计算机网络
馨羽的玩具34 分钟前
麒麟虚拟机原盘扩容后没看到
linux·麒麟