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=args[i] 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

相关推荐
百年孤独_4 小时前
对于基础汇编的趣味认识
汇编·性能优化
向你扔鸡爪2 天前
Visual Studio-X64汇编编写
汇编·windows·visual studio
Lordaeron_ESZ3 天前
CSAPP Attack Lab
linux·汇编
xiaozhiwise3 天前
ARM base instruction -- sxtw
汇编
天赐细莲7 天前
C++的哲学思想
java·c语言·汇编·c++·python
王鑫的博客8867 天前
ARM基础知识点及简单汇编语法
linux·汇编·arm开发
洛书千年7 天前
linux驱动开发-arm汇编基础
汇编·arm开发·驱动开发
小咖拉眯7 天前
vscode将c++项目打包exe进行反汇编练习
c语言·汇编·c++·ide·vscode·安全·密码学
妖怪喜欢风10 天前
Linux 5.0在start_kernel之前做了什么事?(以aarch64为例)
linux·汇编