电码转换中文(电码转换中文怎么翻译)
#
和堆栈局部变量操作。
堆栈=1,局部变量=3,参数大小=2
堆栈:操作数堆栈的数量
局部变量:局部变量的数量
Args_size:方法参数
# #将常数压入堆栈的指令
将空对象引用推送到堆栈。
Iconst_m1将int类型常量-1压入堆栈。
Iconst_0将int类型常量0推送到堆栈上。
Iconst_1将int类型常量1推送到堆栈上。
Iconst_2将int类型常量2推送到堆栈上
Iconst_3将int类型常量3推送到堆栈上
Iconst_4将int类型常量4推送到堆栈上
Iconst_5将int类型常量5推送到堆栈上。
Lconst_0将长常量0推送到堆栈上。
Lconst_1将一个长常量1推送到堆栈上。
Fconst_0将浮点类型常量0推送到堆栈上。
Fconst_1将浮点类型常量1推送到堆栈上。
Dconst_0将双常量0推送到堆栈上
Dconst_1将双常量1推送到堆栈上
Bipush将8位有符号整数推送到堆栈上。
Sipush将16位有符号整数推入堆栈。
Ldc将常量池中的项推入堆栈。
Ldc_w将常量池中的项推到堆栈上(使用宽索引)
Ldc2_w将常量池中的long或double项推送到堆栈上(使用宽索引)
# #从堆栈中的局部变量加载值的指令
Iload从局部变量加载int类型值
Lload从局部变量加载一个长整型值。
从局部变量加载浮点类型值。
Dload从局部变量加载一个双精度值
从局部变量加载引用类型值。
Ilad _ 0从局部变量0加载int类型值。
Ilad _ 1从局部变量1加载int类型值。
Ilad _ 2从局部变量2加载int类型值。
Ilad _ 3从局部变量3加载int类型值。
L _ 0 lload _ 0本地变量0的长整型值。
Lload_1从局部变量1加载一个长值。
Lload_2从局部变量2加载一个长值。
Lload_3从局部变量3加载一个长值。
Fload_0从局部变量0加载浮点类型值。
Fload_1从局部变量1加载浮点类型值。
Fload_2从局部变量2加载浮点类型值。
Fload_3从局部变量3加载浮点类型值。
Dload_0从局部变量0加载一个双精度值。
Dload_1从局部变量1加载一个双精度值。
Dload_2从局部变量2加载一个双精度值
Dload_3从局部变量3加载double值。
Aload_0从局部变量0加载引用类型值。
Aload_1从局部变量1加载引用类型值。
Aload_2从局部变量2加载引用类型值。
Aload_3从局部变量3加载引用类型值。
Iaload从数组中加载int类型的值
Laload从数组中加载长值。
Faload从数组中加载浮点类型值。
从数组中加载一个双精度值
aload从数组中加载引用类型值。
从数组中加载字节或布尔值。
Caload从数组中加载char类型的值。
Saload从数组中加载短类型值。
# #将堆栈中的值存储到局部变量中的指令
Istore将int值存储在局部变量中。
Lstore在局部变量中存储长值。
Fstore将float类型的值存储到一个局部变量中
Dstore将双精度值存储到局部变量中。
Astore将在局部变量中存储引用类型或返回地址类型值。
Istore_0将int值存储在局部变量0中。
Istore_1将int值存储在局部变量1中。
Istore_2将int值存储在局部变量2中。
Istore_3将int值存储在局部变量3中。
L _ 0 lstore_0局部变量0中的长整型值。
L _ 1 lstore_1局部变量1中的长整型值。
L _ 2 lstore_2局部变量2中的长整型值。
L _ 3 lstore_3本地变量3中的长整型值。
Store _ 0将浮点值存储在局部变量0中
Store _ 1将float类型的值存储到局部变量1中
Store _ 2将float类型的值存储在局部变量2中
Store _ 3将float类型的值存储到局部变量3中
Store _ 0将双精度值存储在局部变量0中。
Store _ 1将双精度值存储在局部变量1中
Store _ 2将双精度值存储在局部变量2中
D _ 3 dstore_3局部变量3中的双精度值
Astore_0将引用类型或返回地址类型的值存储在局部变量0中。
Astore_1将引用类型或返回地址类型的值存储在局部变量1中。
Astore_2将引用类型或返回地址类型的值存储在局部变量2中。
Astore_3将引用类型或返回地址类型的值存储在局部变量3中。
Iastore在数组中存储int类型的值
lastore在数组中存储长值。
Fastore将浮点值存储在数组中。
Dastore在数组中存储双精度值
Aastore将引用类型值存储在数组中。
在数组中存储字节或布尔值。
Castore将char值存储在一个数组中。
Sastore将短类型值存储在一个数组中。
广泛的指导
用宽的附加字节扩展局部变量索引
通用(无类型)堆栈操作
Nop什么都不做。
在弹出堆栈的顶部弹出一个单词长的内容。
POP在栈顶弹出两个单词的内容
Dup在栈顶复制一个单词长的内容。
Dup_x1在栈顶复制一个字长的内容,然后将复制的内容和原来的两个字长的内容压入栈中。
Dup_x2在栈顶复制一个字长的内容,然后将复制的内容和原来弹出的三个字长的内容一起推送到栈中。
Dup2复制栈顶的两个字。
Dup2_x1复制栈顶的两个字长的内容,然后将复制的内容和原来弹出的三个字长的内容压入栈中。
Dup2_x2复制栈顶的两个字长的内容,然后将复制的内容和原来弹出的四个字长的内容压入栈中。
Swap交换堆栈顶部两个字的内容。
# #类型转换
I 2将int数据转换成long数据。
I2f将int数据转换为float数据。
I2d将int数据转换为double数据。
L2i将长数据转换成int数据。
L2f将长数据转换成浮点数据。
L2d将长数据转换为双精度数据。
F2i将float类型的数据转换成int类型。
将float类型的数据转换为long类型。
F2将浮点类型的数据转换为双精度类型
D2i将double数据转换为int数据。
D2l将双精度数据转换为长数据。
D2f将双精度数据转换为浮点数据。
I2将int数据转换为byte数据。
将i2cint数据转换为char数据。
I2s将整型数据转换成短整型数据。
# #整数运算
Iadd执行int类型的加法
ladd执行long类型的加法
Isub执行int类型减法。
Lsub执行long类型的减法。
Imul执行int类型乘法。
lmul执行long类型的乘法。
Idiv执行int类型的除法。
Ldiv执行long类型的除法
Irem计算整数除法的余数。
Lrem计算长除法的余数。
Ineg对一个int值求反。
Lneg对长整型值求反。
Iinc向int类型的局部变量添加一个常数值。
# #逻辑运算
# # #移位操作
Ishl执行int类型的左移操作。
Lshl向左执行长类型移位。
Ishr执行int类型的右移位操作。
Lshr执行向long类型右侧的移位。
Iushr执行向int类型右侧的逻辑移位。
Lushr执行逻辑移位到long类型的右边。
# # #按位布尔运算
Iand对int类型的值执行逻辑and运算。
对LandLong类型的值执行逻辑land运算。
Ior对int类型的值执行逻辑or运算。
Lor对长值执行逻辑或运算。
Ixor对int类型的值执行逻辑xor运算。
Lxor对长值执行逻辑xor运算。
# # #浮点运算
fadd执行浮点型加法。
D dadd执行双重加法。
fsub执行浮点型减法。
Dsub执行双重减法。
Fmul执行浮点类型的乘法。
Dmul执行双重乘法。
fdiv执行float类型的除法运算。
Ddiv执行双除法。
Frem计算浮点除法的余数。
Drem计算两次除法的余数。
Fneg反转float类型的值。
Dneg对double类型的数值求反。
# #对象和数组
# # #对象操作说明
新建创建新对象。
Checkcast确定对象是给定的类型。
Getfield从对象中获取字段。
设置对象中字段的值。
Getstatic从类中获取静态字段。
设置类中静态字段的值。
Instanceof确定对象是否属于给定类型。
# # #数组操作指令
Newarray分配一个数据成员类型为基本数据类型的新数组。
Anewarray分配一个数据成员类型为引用类型的新数组。
Arraylength获取数组长度。
Multianewarray分配一个新的多维数组。
# #控制流程
# # #条件分支指令
如果ifeq等于0,则跳转
如果ifne不等于0,则跳转。
如果iflt小于0,则跳转。
如果ifge大于或等于0,则跳转。
如果大于0,则Ifgt跳转。
如果ifle小于或等于0,则跳转。
If_icmpcq如果两个int值相等,跳转
If_icmpne如果两个int类型的值不相等,则跳转
如果一个int类型值小于另一个int类型值,跳转。
如果一个int类型值大于或等于另一个int类型值,If_icmpge跳转。
If_icmpgt如果一个int类型值大于另一个int类型值,跳转
如果一个int类型值小于或等于另一个int类型值,跳转。
如果ifnull等于null,则跳转。
如果不等于null,则跳转。
如果两个对象引用相等,跳转
如果两个对象引用不相等,跳转
# # #比较指令
Lcmp比较长值
Fcmpl比较float类型的值(遇到NaN时返回-1)
Fcmpg比较float类型的值(遇到NaN时返回1)
Dcmpl比较双精度值(遇到NaN时返回-1)
Dcmpg比较双精度值(遇到NaN时返回1)
# # #无条件分支指令
转到无条件跳转
Got _ w无条件跳转(宽索引)
# # #表格跳转指令
Table通过索引访问跳转表并跳转。
Lookupswitch通过键值匹配访问跳转表,并执行跳转操作。
反常的
a行抛出异常或错误。
最终条款
Jsr跳转到子程序
Jsr_w跳转到子程序(宽索引)
子程序返回的Rct
# #方法调用和返回
# # #方法调用指令
Invokcvirtual运行时根据对象的类调用实例方法。
Invokespecial根据编译时类型调用实例方法。
Invokestatic调用类(静态)方法。
Invokcinterface调用接口方法。
# # #该方法返回指令
Ireturn从方法中返回int类型的数据。
Lreturn从方法中返回long类型的数据。
Freturn从方法中返回float类型的数据。
Dreturn从方法返回double类型的数据。
Areturn从方法中返回引用类型的数据。
从方法返回,返回值为void。
# #线程同步
Montiorenter进入并获取对象监视器。
Monitorexit释放并退出对象监视器。
## JVM指令助记符
操作数堆栈的变量:iload、iload _、lload、lload _、fload、fload _、dload _、dload _、aload _
操作堆栈到变量:istore,istore _,lstore,lstore _,fstore,fstore _,dstore _,dstore _,astore _
操作数堆栈的常量:bipush,sipush,LDC,LDC _ w,LDC 2 _ 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
负:国家经济普查局、国家经济普查局、国家经济普查局、国家经济普查局
移位:ISHL,LSHR,尤什尔,LSHL,LSHR,卢什尔
按或:ior,lor
一点一点:土地,土地
按位异或:异或,异或
类型:i2l、i2f、i2d、l2f、l2d、f2d(宽松数值转换)
I2b、i2c、i2s、l2i、f2i、f2l、d2i、d2l、d2f(缩小数值转换)
创建类:新建
创建新阵列:new array、a new array、MultiAnwaray
类的访问域和类实例域:getfield、putfield、getstatic、putstatic
将数据加载到操作数堆栈:baload、caload、saload、iaload、laload、faload、daload、aload
操作数堆栈存储到数组:bastore,castore,sastore,iastore,lastore,fastore,dastore,aastore。
Get arraylength: 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 _ icmpveq,if _ icmpne,
if_icmplt,if_icmpgt,if_icmple,if_icmpge,if_acmpeq,if_acmpne,lcmp,fcmpl
fcmpg,dcmpl,dcmpg
复合条件转移:表开关、查找开关
无条件转移:goto,goto_w,jsr,jsr_w,ret
调度对象的实用方法:invokevirtual
调用接口实现的方法:invokeinterface
调用需要特殊处理的实例方法:invokespecial。
调用命名类中的静态方法:invokestatic。
方法:ireturn,lreturn,vreeturn,dreeturn,areturn,return
异常:一行
finally关键字是使用:jsr,jsr_w,ret实现的。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
本文来自网络,若有侵权,请联系删除,作者:李书远,如若转载,请注明出处: