ARM base instruction -- cinc

Conditional Increment returns, in the destination register, the value of the source register incremented by 1 if the condition is TRUE, and otherwise returns the value of the source register.

如果条件为TRUE,则条件增量在目标寄存器中返回源寄存器的值加1,否则返回源寄存器。

32-bit variant

Applies when sf == 0.

CINC <Wd>, <Wn>, <cond>

64-bit variant

Applies when sf == 1.

CINC <Xd>, <Xn>, <cond>

Decode for all variants of this encoding

integer d = UInt(Rd);

integer n = UInt(Rn);

integer datasize = if sf == '1' then 64 else 32;

Operation

bits(datasize) result;

bits(datasize) operand1 = Xn;

if ConditionHolds(cond) then

result = operand1 + 1;

else

result = operand1;

Xd = result;

404288: 710002ff cmp w23, #0x0 // w23=0

40428c: aa1b03fc mov x28, x27 // x28=x27=walk->next

404290: 110006f7 add w23, w23, #0x1 // w23=w23+1 count++

404294: 1a94069b cinc w27, w20, ne // w27=0, w20=0; if ConditionHolds(cond) then w27=w20+1=1

404298: 17ffffd2 b 4041e0 <ferror@plt+0x2300>

相关推荐
en.en..1 天前
汇编与 C 语言 互调用
汇编
wuminyu2 天前
Continuation::freeze与thaw的x86_64汇编Stack Chunk拆解源码分析
java·linux·c语言·汇编·jvm·c++
en.en..3 天前
ARM 汇编 B / BL 核心区别
汇编·arm开发
水饺编程3 天前
第2章:Linux 基础,mkdir 命令的简单入门
linux·c语言·汇编
水饺编程4 天前
第2章:Linux 基础,echo 命令
linux·c语言·汇编
水饺编程5 天前
第2章:Linux 基础,clear 命令
linux·c语言·汇编
水饺编程6 天前
第2章:Linux 基础,whoami 命令
linux·c语言·汇编
水饺编程7 天前
第2章:Linux 基础,pwd 命令
linux·c语言·汇编
半杯咖啡半行码8 天前
STM32之ARM通用汇编指令详解:从指令格式到寻址方式
汇编·arm开发·stm32
Seeing58 天前
音乐111111
汇编