ARM base instruction -- ccmp

Conditional Compare (register) sets the value of the condition flags to the result of the comparison of two registers if the condition is TRUE, and an immediate value otherwise.

条件比较(寄存器)如果条件为真,则将条件标志的值设置为两个寄存器的比较结果,否则设置为立即值。

32-bit variant:

CCMP <Wn>, <Wm>, #<nzcv>, <cond>

64-bit variant:

CCMP <Xn>, <Xm>, #<nzcv>, <cond>

ccmp x13, x12, #0x0, ne # 双重比较. 判断 x13 和 x12 同时存在,即都不等于0。将ne设置到标志寄存器。

4037b8: 1100079c add w28, w28, #0x1 // this->argc+1

4037bc: b900527c str w28, x19, #80 // this->argc++;

4037c0: 3864cb20 ldrb w0, x25, w4, sxtw // w0=0=argsi cpsr=0x80201000 EL=0 SSBS SS N

4037c4: 7100001f cmp w0, #0x0 // cpsr=0x60201000 EL=0 SSBS SS C Z

4037c8: 7a440064 ccmp w3, w4, #0x4, eq // eq = none, w3=0xb=size-1, w4=4=i cpsr=0x20201000 EL=0 SSBS SS C

4037cc: 54fffecd b.le 4037a4 <ferror@plt+0x18c4>

#<nzcv>:

ARM Process state -- PSTATE

ARM Process state -- CPSR

相关推荐
水饺编程5 天前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zevalin爱灰灰5 天前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
Zevalin爱灰灰5 天前
Linux入门第二部分(ARM裸机篇) 第三章 汇编LED驱动实验
linux·汇编·arm开发
水饺编程6 天前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
小向是个Der8 天前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
二十七日秋8 天前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
银河麒麟操作系统8 天前
两案例入选全球计算联盟年度产业应用案例汇编
大数据·汇编·人工智能
abc light8 天前
ARM 裸机开发(2)——ARM 汇编与启动代码
汇编·arm开发
soso19689 天前
Modbus协议开发实战指南
汇编
水饺编程10 天前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编