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

相关推荐
道尔柯南9 分钟前
Linux 网络编程:从零掌握 TCP Socket 编程(附 C++ 实战)
linux·网络·tcp/ip
0+11124 分钟前
Linux --ARP的具体过程与ARP欺骗
linux·服务器·网络
阿星_37 分钟前
Linux Ubuntu 查看 SQLite 工具
linux·ubuntu·sqlite
Lsetea1 小时前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
张文君1 小时前
Ubuntu iSCSI CHAP认证与Win11挂载
linux·运维·ubuntu
一直C1 小时前
嵌入式 Linux 驱动开发学习笔记:中断、等待队列与工作队列
linux·驱动开发·嵌入式硬件·学习·imx6ull
程序员-Benothing2 小时前
Linux防火墙配置教程:iptables、firewalld、nftables、ufw
linux·运维·服务器
齐鲁大虾2 小时前
如何通过 CUPS Web 界面(http://localhost:631)安装打印机驱动
linux
下辈子不要当码农2 小时前
项目框架搭建(2)
arm开发
yunwei372 小时前
eBPF 实例教程:使用内核跟踪点监控 GPU 驱动活动
linux·后端·性能优化