JVM中的指令

来源:互联网 发布:mac adobe 破解工具 编辑:程序博客网 时间:2024/06/08 09:04

节码

记符

指令

0x00

nop

什么都不做。

0x01

aconst_null

null 推送至栈顶。

0x02

iconst_m1

int -1 推送至栈顶。

0x03

iconst_0

int0推送至栈顶。

0x04

iconst_1

int1推送至栈顶。

0x05

iconst_2

int2推送至栈顶。

0x06

iconst_3

int3推送至栈顶。

0x07

iconst_4

int4推送至栈顶。

0x08

iconst_5

int5推送至栈顶。

0x09

lconst_0

long 0 推送至栈顶。

0x0a

lconst_1

long 1 推送至栈顶。

0x0b

fconst_0

float 0 推送至栈顶。

0x0c

fconst_1

float 1 推送至栈顶。

0x0d

fconst_2

float 2 推送至栈顶。

0x0e

dconst_0

double 0 推送至栈顶。

0x0f

dconst_1

double 1 推送至栈顶。

0x10

bipush

单字节的常量值(-128~127)推送至栈顶。

0x11

sipush

将一个短整型常量(-32768~32767)推送至栈顶。

0x12

ldc

int,float String型常量值从常量池中推送至栈顶。

0x13

ldc_w

int,float String型常量值从常量池中推送至栈顶(宽索引)

0x14

ldc2_w

long double 型常量值从常量池中推送至栈顶(宽索引)

0x15

iload

将指定的 int 型局部变量推送至栈顶。

0x16

lload

将指定的 long 型局部变量推送至栈顶。

0x17

fload

将指定的 float 型局部变量推送至栈顶。

0x18

dload

将指定的 double 型局部变量推送至栈顶。

0x19

aload

将指定的引用类型局部变量推送至栈顶。

0x1a

iload_0

将第一个 int 型局部变量推送至栈顶。

0x1b

iload_1

将第二个 int 型局部变量推送至栈顶。

0x1c

iload_2

将第三个 int 型局部变量推送至栈顶。

0x1d

iload_3

将第四个 int 型局部变量推送至栈顶。

0x1e

lload_0

将第一个 long 型局部变量推送至栈顶。

0x1f

lload_1

将第二个 long 型局部变量推送至栈顶。

0x20

lload_2

将第三个 long 型局部变量推送至栈顶。

0x21

lload_3

将第四个 long 型局部变量推送至栈顶。

0x22

fload_0

将第一个 float 型局部变量推送至栈顶。

0x23

fload_1

将第二个 float 型局部变量推送至栈顶。

0x24

fload_2

将第三个 float 型局部变量推送至栈顶

0x25

fload_3

将第四个 float 型局部变量推送至栈顶。

0x26

dload_0

将第一个 double 型局部变量推送至栈顶。

0x27

dload_1

将第二个 double 型局部变量推送至栈顶。

0x28

dload_2

将第三个 double 型局部变量推送至栈顶。

0x29

dload_3

将第四个 double 型局部变量推送至栈顶。

0x2a

aload_0

将第一个引用类型局部变量推送至栈顶。

0x2b

aload_1

将第二个引用类型局部变量推送至栈顶。

0x2c

aload_2

将第三个引用类型局部变量推送至栈顶。

0x2d

aload_3

将第四个引用类型局部变量推送至栈顶。

0x2e

iaload

int 型数组指定索引的值推送至栈顶。

0x2f

laload

long 型数组指定索引的值推送至栈顶。

0x30

faload

float 型数组指定索引的值推送至栈顶。

0x31

daload

double 型数组指定索引的值推送至栈顶。

0x32

aaload

将引用型数组指定索引的值推送至栈顶。

0x33

baload

boolean byte 型数组指定索引的值推送至栈顶。

0x34

caload

char 型数组指定索引的值推送至栈顶。

0x35

saload

short 型数组指定索引的值推送至栈顶。

0x36

istore

栈顶 int 型数值存入指定局部变量。

0x37

lstore

栈顶 long 型数值存入指定局部变量。

0x38

fstore

栈顶 float 型数值存入指定局部变量。

0x39

dstore

栈顶 double 型数值存入指定局部变量。

0x3a

astore

栈顶引用型数值存入指定局部变量。

0x3b

istore_0

栈顶 int 型数值存入第一个局部变量。

0x3c

istore_1

栈顶 int 型数值存入第二个局部变量。

0x3d

istore_2

栈顶 int 型数值存入第三个局部变量。

0x3e

istore_3

栈顶 int 型数值存入第四个局部变量。

0x3f

lstore_0

栈顶 long 型数值存入第一个局部变量。

0x40

lstore_1

栈顶 long 型数值存入第二个局部变量。

0x41

lstore_2

栈顶 long 型数值存入第三个局部变量。

0x42

lstore_3

栈顶 long 型数值存入第四个局部变量。

0x43

fstore_0

栈顶 float 型数值存入第一个局部变量。

0x44

fstore_1

栈顶 float 型数值存入第二个局部变量。

0x45

fstore_2

栈顶 float 型数值存入第三个局部变量。

0x46

fstore_3

栈顶 float 型数值存入第四个局部变量。

0x47

dstore_0

栈顶 double 型数值存入第一个局部变量。

0x48

dstore_1

栈顶 double 型数值存入第二个局部变量。

0x49

dstore_2

栈顶 double 型数值存入第三个局部变量。

0x4a

dstore_3

栈顶 double 型数值存入第四个局部变量。

0x4b

astore_0

栈顶引用型数值存入第一个局部变量。

0x4c

astore_1

栈顶引用型数值存入第二个局部变量。

0x4d

astore_2

栈顶引用型数值存入第三个局部变量

0x4e

astore_3

栈顶引用型数值存入第四个局部变量。

0x4f

iastore

栈顶 int 型数值存入指定数组的指定索引位置

0x50

lastore

栈顶 long 型数值存入指定数组的指定索引位置。

0x51

fastore

栈顶 float 型数值存入指定数组的指定索引位置。

0x52

dastore

栈顶 double 型数值存入指定数组的指定索引位置。

0x53

aastore

栈顶引用型数值存入指定数组的指定索引位置。

0x54

bastore

栈顶 boolean byte型数值存入指定数组的指定索引位置。

0x55

castore

栈顶 char 型数值存入指定数组的指定索引位置

0x56

sastore

栈顶 short 型数值存入指定数组的指定索引位置。

0x57

pop

栈顶数值弹出(值不能是 long double 类型的)

0x58

pop2

栈顶的一个(long double 类型的)或两个数值弹出(其它)

0x59

dup

复制栈顶数值并将复制值压入栈顶。

0x5a

dup_x1

复制栈顶数值并将两个复制值压入栈顶。

0x5b

dup_x2

复制栈顶数值并将三个(或两个)复制值压入栈顶。

0x5c

dup2

复制栈顶一个(long double 类型的)或两个(其它)值并将复制值压入栈顶。

0x5d

dup2_x1

dup_x1 指令的双倍版

0 0
原创粉丝点击