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

相关推荐
en.en..4 小时前
ARM 汇编 B / BL 核心区别
汇编·arm开发
水饺编程8 小时前
第2章:Linux 基础,mkdir 命令的简单入门
linux·c语言·汇编
水饺编程1 天前
第2章:Linux 基础,echo 命令
linux·c语言·汇编
水饺编程2 天前
第2章:Linux 基础,clear 命令
linux·c语言·汇编
水饺编程3 天前
第2章:Linux 基础,whoami 命令
linux·c语言·汇编
水饺编程4 天前
第2章:Linux 基础,pwd 命令
linux·c语言·汇编
半杯咖啡半行码5 天前
STM32之ARM通用汇编指令详解:从指令格式到寻址方式
汇编·arm开发·stm32
Seeing55 天前
音乐111111
汇编
Funlang5 天前
从汇编到Fun语言
汇编
l1t5 天前
DeepSeek总结的有符号、无符号、未对齐:从汇编到 SQL 的教训
汇编·数据库·sql