前言
文章转自:https://blog.csdn.net/github_35983163/article/details/52945845
以防哪天找不到了,就自己做了个备份。
常用字节码指令集
常量入栈指令 |
|||
指令码 |
操作码(助记符) |
操作数 |
描述(栈指操作数栈) |
0x01 | aconst_null |
|
null值入栈。 |
0x02 | iconst_m1 |
|
-1(int)值入栈。 |
0x03 | iconst_0 |
|
0(int)值入栈。 |
0x04 | iconst_1 |
|
1(int)值入栈。 |
0x05 | iconst_2 |
|
2(int)值入栈。 |
0x06 | iconst_3 |
|
3(int)值入栈。 |
0x07 | iconst_4 |
|
4(int)值入栈。 |
0x08 | iconst_5 |
|
5(int)值入栈。 |
0x09 | lconst_0 |
|
0(long)值入栈。 |
0x0a | lconst_1 |
|
1(long)值入栈。 |
0x0b | fconst_0 |
|
0(float)值入栈。 |
0x0c | fconst_1 |
|
1(float)值入栈。 |
0x0d | fconst_2 |
|
2(float)值入栈。 |
0x0e | dconst_0 |
|
0(double)值入栈。 |
0x0f | dconst_1 |
|
1(double)值入栈。 |
0x10 | bipush |
valuebyte |
valuebyte值带符号扩展成int值入栈。 |
0x11 | sipush |
valuebyte1 valuebyte2 |
(valuebyte1 << 8) | valuebyte2 值带符号扩展成int值入栈。 |
0x12 | ldc |
indexbyte1 |
常量池中的常量值(int, float, string reference, object reference)入栈。 |
0x13 | ldc_w |
indexbyte1 indexbyte2 |
常量池中常量(int, float, string reference, object reference)入栈。 |
0x14 | ldc2_w |
indexbyte1 indexbyte2 |
常量池中常量(long, double)入栈。 |
|
|||
局部变量值转载到栈中指令 |
|||
指令码 | 操作码(助记符) |
操作数 |
描述(栈指操作数栈) |
0x19 | (wide)aload |
indexbyte |
从局部变量indexbyte中装载引用类型值入栈。 |
0x2a | aload_0 |
|
从局部变量0中装载引用类型值入栈。 |
0x2b | aload_1 |
|
从局部变量1中装载引用类型值入栈。 |
0x2c | aload_2 |
|
从局部变量2中装载引用类型值入栈。 |
0x2d | aload_3 |
|
从局部变量3中装载引用类型值入栈。 |
0x15 | (wide)iload |
indexbyte |
从局部变量indexbyte中装载int类型值入栈。 |
0x1a | iload_0 |
|
从局部变量0中装载int类型值入栈。 |
0x1b | iload_1 |
|
从局部变量1中装载int类型值入栈。 |
0x1c | iload_2 |
|
从局部变量2中装载int类型值入栈。 |
0x1d | iload_3 |
|
从局部变量3中装载int类型值入栈。 |
0x16 | (wide)lload |
indexbyte |
从局部变量indexbyte中装载long类型值入栈。 |
0x1e | lload_0 |
|
从局部变量0中装载int类型值入栈。 |
0x1f | lload_1 |
|
从局部变量1中装载int类型值入栈。 |
0x20 | lload_2 |
|
从局部变量2中装载int类型值入栈。 |
0x21 | lload_3 |
|
从局部变量3中装载int类型值入栈。 |
0x17 | (wide)fload |
indexbyte |
从局部变量indexbyte中装载float类型值入栈。 |
0x22 | fload_0 |
|
从局部变量0中装载float类型值入栈。 |
0x23 | fload_1 |
|
从局部变量1中装载float类型值入栈。 |
0x24 | fload_2 |
|
从局部变量2中装载float类型值入栈。 |
0x25 | fload_3 |
|
从局部变量3中装载float类型值入栈。 |
0x18 | (wide)dload |
indexbyte |
从局部变量indexbyte中装载double类型值入栈。 |
0x26 | dload_0 |
|
从局部变量0中装载double类型值入栈。 |
0x27 | dload_1 |
|
从局部变量1中装载double类型值入栈。 |
0x28 | dload_2 |
|
从局部变量2中装载double类型值入栈。 |