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 改怎么对应呢?

相关推荐
何老生1 小时前
Linux之MySQL主从复制
linux·运维·mysql
ggdpzhk1 小时前
图片详解,最简单易懂!!!Ubuntu增强功能
linux·ubuntu
神奇椰子2 小时前
Ubuntu 常用指令和作用解析
linux·运维·ubuntu·centos·云计算·代码规范·浪浪云
亦诗亦诗2 小时前
centos arm docker 安装nginx
arm开发·docker·centos
望获linux2 小时前
Linux网络协议栈的实现
linux·服务器·arm开发·网络协议·操作系统·嵌入式操作系统
树欲静而风不止丶2 小时前
【Ubuntu】安装常用软件包
linux·ubuntu
lagransun2 小时前
Linux内核学习之 -- 系统调用open()和write()的实现笔记
linux·笔记·学习
可儿·四系桜2 小时前
如何在Linux虚拟机上安装和配置JDK
java·linux·运维
robot_大菜鸟2 小时前
linux-L5.linux查看应用占用的资源top
linux·运维·服务器
纪佰伦3 小时前
ELK在Linux服务器下使用docker快速部署(超详细)
linux·服务器·elk