虚拟机比较指令
Posted extjs4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机比较指令相关的知识,希望对你有一定的参考价值。
ifeq = 153,// 0x99 ifeq 当栈顶int型数值等于0 时跳转
ifne = 154,// 0x9a ifne 当栈顶int型数值不等于0 时跳转
iflt = 155,// 0x9b iflt 当栈顶int型数值小于0 时跳转
ifge = 156,// 0x9c ifge 当栈顶int型数值大于等于0 时跳转
ifgt = 157,// 0x9d ifgt 当栈顶int型数值大于0 时跳转
ifle = 158,// 0x9e ifle 当栈顶int型数值小于等于0 时跳转
if_icmpeq = 159,// 0x9f if_icmpeq 比较栈顶两int型数值大小,当结果等于0 时跳转
if_icmpne = 160,// 0xa0 if_icmpne 比较栈顶两int型数值大小,当结果不等于0 时跳转
if_icmplt = 161,// 0xa1 if_icmplt 比较栈顶两int型数值大小,当结果小于0 时跳转
if_icmpge = 162,// 0xa2 if_icmpge 比较栈顶两int型数值大小,当结果大于等于0 时跳转
if_icmpgt = 163,// 0xa3 if_icmpgt 比较栈顶两int型数值大小,当结果大于0 时跳转
if_icmple = 164,// 0xa4 if_icmple 比较栈顶两int型数值大小,当结果小于等于0 时跳转
if_acmpeq = 165,// 0xa5 if_acmpeq 比较栈顶两引用型数值,当结果相等时跳转
if_acmpne = 166,// 0xa6 if_acmpne 比较栈顶两引用型数值,当结果不相等时跳转
if_acmp_null = 198,// 0xc6 ifnull 为null时跳转
if_acmp_nonnull = 199,// 0xc7 ifnonnull 不为null时跳转
如上的一些指令有一点规律:
(1)相对应的一对指令的编码是相邻的,如ifeq和ifne的编码是153和154
(2)较小的指令编码是奇数,例如153
只有一个例外就是ifnull和ifnonnull编码分别是198和199,不满足第二个条件
以上是关于虚拟机比较指令的主要内容,如果未能解决你的问题,请参考以下文章