「Java」- 虚拟机指令

if<cond>

当栈顶int型数值与0进行比较,满足条件时跳转

Forms
ifeq = 153 (0x99)
ifne = 154 (0x9a)
iflt = 155 (0x9b)
ifge = 156 (0x9c)
ifgt = 157 (0x9d)
ifle = 158 (0x9e)

Operand Stack
…, value →

if_icmp<cond>

比较栈顶两个int型数值大小,靠近栈底的值为左值,满足条件时进行跳转。

Forms
if_icmpeq = 159 (0x9f)
if_icmpne = 160 (0xa0)
if_icmplt = 161 (0xa1)
if_icmpge = 162 (0xa2)
if_icmpgt = 163 (0xa3)
if_icmple = 164 (0xa4)

Operand Stack
…, value1, value2 →

if_acmp<cond>

比较栈顶两个引用型数值,满足条件时进行跳转。

Forms
if_acmpeq = 165 (0xa5)
if_acmpne = 166 (0xa6)

Operand Stack
…, value1, value2 →

ifnull 0xc6

为null时跳转

ifnonnull 0xc7

不为null时跳转