比较指令
- lcmp 比较long类型值
- fcmpl 比较float类型值(当遇到NaN时,返回-1)
- fcmpg 比较float类型值(当遇到NaN时,返回1)
- dcmpl 比较double类型值(当遇到NaN时,返回-1)
- dcmpg 比较double类型值(当遇到NaN时,返回1)
- goto 无条件跳转
- goto_w 无条件跳转(宽索引)
- 表跳转指令
- tableswitch 通过索引访问跳转表,并跳转
- lookupswitch 通过键值匹配访问跳转表,并执行跳转操作
- athrow 抛出异常或错误
- finally子句
- jsr 跳转到子例程
- jsr_w 跳转到子例程(宽索引)
- rct 从子例程返回
方法调用指令
- invokcvirtual 运行时按照对象的类来调用实例方法
- invokespecial 根据编译时类型来调用实例方法
- invokestatic 调用类(静态)方法
- invokcinterface 调用接口方法
- ireturn 从方法中返回int类型的数据
- lreturn 从方法中返回long类型的数据
- freturn 从方法中返回float类型的数据
- dreturn 从方法中返回double类型的数据
- areturn 从方法中返回引用类型的数据
- return 从方法中返回,返回值为void
- montiorenter 进入并获取对象监视器
- monitorexit 释放并退出对象监视器
- JVM指令助记符
操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_
常数到操作数栈:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_,lconst_,fconst_,dconst_
加:iadd,ladd,fadd,dadd
减:isub,lsub,fsub,dsub
乘:imul,lmul,fmul,dmul
除:idiv,ldiv,fdiv,ddiv
余数:irem,lrem,frem,drem
取负:ineg,lneg,fneg,dneg
移位:ishl,lshr,iushr,lshl,lshr,lushr
按位或:ior,lor
按位与:iand,land
按位异或:ixor,lxor
类型转换:i2l,i2f,i2d,l2f,l2d,f2d(放宽数值转换)
i2b,i2c,i2s,l2i,f2i,f2l,d2i,d2l,d2f(缩窄数值转换)
创建类实便:new
创建新数组:newarray,anewarray,multianwarray
访问类的域和类实例域:getfield,putfield,getstatic,putstatic
把数据装载到操作数栈:baload,caload,saload,iaload,laload,faload,daload,aaload
从操作数栈存存储到数组:bastore,castore,sastore,iastore,lastore,fastore,dastore,aastore
获取数组长度:arraylength
检相类实例或数组属性:instanceof,checkcast
操作数栈管理:pop,pop2,dup,dup2,dup_xl,dup2_xl,dup_x2,dup2_x2,swap
有条件转移:ifeq,iflt,ifle,ifne,ifgt,ifge,ifnull,ifnonnull,if_icmpeq,if_icmpene,
if_icmplt,if_icmpgt,if_icmple,if_icmpge,if_acmpeq,if_acmpne,lcmp,fcmpl
fcmpg,dcmpl,dcmpg
复合条件转移:tableswitch,lookupswitch
无条件转移:goto,goto_w,jsr,jsr_w,ret
调度对象的实便方法:invokevirtual
调用由接口实现的方法:invokeinterface
调用需要特殊处理的实例方法:invokespecial
调用命名类中的静态方法:invokestatic
方法返回:ireturn,lreturn,freturn,dreturn,areturn,return
异常:athrow
finally关键字的实现使用:jsr,jsr_w,ret
有需要编程视频的可以私信小七"学习"哦!需要其他资源的也可以私聊小七的!

文章插图
【Java反汇编指令全集】
推荐阅读
- 美容养颜|柠檬蜂蜜水可以美容养颜?卫生组织:在线辟谣,长期服用反而患痛风
- Java虚拟机原理
- 利用先进的反DDoS系统防御TB级流量攻击
- Javascript:Promise对象基础
- JavaScript Proxy基本知识梳理
- 安卓开源十三年,最大移动OS的正反两面
- Java线程中断的正确姿势
- Java常量、变量、数据类型详解
- 小米应用商店风云榜办公类App下载排行,钉钉被腾讯会议反超
- 华为开始反击!买下多家英国报纸整版广告,回击5G安全担忧
