电码转换中文(电码转换中文怎么翻译)

#

JVM 字节码指令中文说明

和堆栈局部变量操作。

堆栈=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实现的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,作者:李书远,如若转载,请注明出处:

发表回复

登录后才能评论