首页
社区
课程
招聘
JVM指令助记符
发表于: 2005-7-19 12:55 10910

JVM指令助记符

2005-7-19 12:55
10910
Opcode Mnemonics by Opcode

Standard Opcodes

0 0x00 nop
1 0x01 aconst_null
2 0x02 iconst_m1
3 0x03 iconst_0
4 0x04 iconst_1
5 0x05 iconst_2
6 0x06 iconst_3
7 0x07 iconst_4
8 0x08 iconst_5
9 0x09 lconst_0
10 0x0a lconst_1
11 0x0b fconst_0
12 0x0c fconst_1
13 0x0d fconst_2
14 0x0e dconst_0
15 0x0f dconst_1
16 0x10 bipush
17 0x11 sipush
18 0x12 ldc
19 0x13 ldc_w
20 0x14 ldc2_w
21 0x15 iload
22 0x16 lload
23 0x17 fload
24 0x18 dload
25 0x19 aload
26 0x1a iload_0
27 0x1b iload_1
28 0x1c iload_2
29 0x1d iload_3
30 0x1e lload_0
31 0x1f lload_1
32 0x20 lload_2
33 0x21 lload_3
34 0x22 fload_0
35 0x23 fload_1
36 0x24 fload_2
37 0x25 fload_3
38 0x26 dload_0
39 0x27 dload_1
40 0x28 dload_2
41 0x29 dload_3
42 0x2a aload_0
43 0x2b aload_1
44 0x2c aload_2
45 0x2d aload_3
46 0x2e iaload
47 0x2f laload
48 0x30 faload
49 0x31 daload
50 0x32 aaload
51 0x33 baload
52 0x34 caload
53 0x35 saload
54 0x36 istore
55 0x37 lstore
56 0x38 fstore
57 0x39 dstore
58 0x3a astore
59 0x3b istore_0
60 0x3c istore_1
61 0x3d istore_2
62 0x3e istore_3
63 0x3f lstore_0
64 0x40 lstore_1
65 0x41 lstore_2
66 0x42 lstore_3
67 0x43 fstore_0
68 0x44 fstore_1
69 0x45 fstore_2
70 0x46 fstore_3
71 0x47 dstore_0
72 0x48 dstore_1
73 0x49 dstore_2
74 0x4a dstore_3
75 0x4b astore_0
76 0x4c astore_1
77 0x4d astore_2
78 0x4e astore_3
79 0x4f iastore
80 0x50 lastore
81 0x51 fastore
82 0x52 dastore
83 0x53 aastore
84 0x54 bastore
85 0x55 castore
86 0x56 sastore
87 0x57 pop
88 0x58 pop2
89 0x59 dup
90 0x5a dup_x1
91 0x5b dup_x2
92 0x5c dup2
93 0x5d dup2_x1
94 0x5e dup2_x2
95 0x5f swap
96 0x60 iadd
97 0x61 ladd
98 0x62 fadd
99 0x63 dadd
100 0x64 isub
101 0x65 lsub
102 0x66 fsub
103 0x67 dsub
104 0x68 imul
105 0x69 lmul
106 0x6a fmul
107 0x6b dmul
108 0x6c idiv
109 0x6d ldiv
110 0x6e fdiv
111 0x6f ddiv
112 0x70 irem
113 0x71 lrem
114 0x72 frem
115 0x73 drem
116 0x74 ineg
117 0x75 lneg
118 0x76 fneg
119 0x77 dneg
120 0x78 ishl
121 0x79 lshl
122 0x7a ishr
123 0x7b lshr
124 0x7c iushr
125 0x7d lushr
126 0x7e iand
127 0x7f land
128 0x80 ior
129 0x81 lor
130 0x82 ixor
131 0x83 lxor
132 0x84 iinc
133 0x85 i2l
134 0x86 i2f
135 0x87 i2d
136 0x88 l2i
137 0x89 l2f
138 0x8a l2d
139 0x8b f2i
140 0x8c f2l
141 0x8d f2d
142 0x8e d2i
143 0x8f d2l
144 0x90 d2f
145 0x91 i2b
146 0x92 i2c
147 0x93 i2s
148 0x94 lcmp
149 0x95 fcmpl
150 0x96 fcmpg
151 0x97 dcmpl
152 0x98 dcmpg
153 0x99 ifeq
154 0x9a ifne
155 0x9b iflt
156 0x9c ifge
157 0x9d ifgt
158 0x9e ifle
159 0x9f if_icmpeq
160 0xa0 if_icmpne
161 0xa1 if_icmplt
162 0xa2 if_icmpge
163 0xa3 if_icmpgt
164 0xa4 if_icmple
165 0xa5 if_acmpeq
166 0xa6 if_acmpne
167 0xa7 goto
168 0xa8 jsr
169 0xa9 ret
170 0xaa tableswitch
171 0xab lookupswitch
172 0xac ireturn
173 0xad lreturn
174 0xae freturn
175 0xaf dreturn
176 0xb0 areturn
177 0xb1 return
178 0xb2 getstatic
179 0xb3 putstatic
180 0xb4 getfield
181 0xb5 putfield
182 0xb6 invokevirtual
183 0xb7 invokespecial
184 0xb8 invokestatic
185 0xb9 invokeinterface
187 0xbb new
188 0xbc newarray
189 0xbd anewarray
190 0xbe arraylength
191 0xbf athrow
192 0xc0 checkcast
193 0xc1 instanceof
194 0xc2 monitorenter
195 0xc3 monitorexit
196 0xc4 wide
197 0xc5 multianewarray
198 0xc6 ifnull
199 0xc7 ifnonnull
200 0xc8 goto_w
201 0xc9 jsr_w

Quick Opcodes

203 0xcb ldc_quick
204 0xcc ldc_w_quick
205 0xcd ldc2_w_quick
206 0xce getfield_quick
207 0xcf putfield_quick
208 0xd0 getfield2_quick
209 0xd1 putfield2_quick
210 0xd2 getstatic_quick
211 0xd3 putstatic_quick
212 0xd4 getstatic2_quick
213 0xd5 putstatic2_quick
214 0xd6 invokevirtual_quick
215 0xd7 invokenonvirtual_quick
216 0xd8 invokesuper_quick
217 0xd9 invokestatic_quick
218 0xda invokeinterface_quick
219 0xdb invokevirtualobject_quick
221 0xdd new_quick
222 0xde anewarray_quick
223 0xdf multianewarray_quick
224 0xe0 checkcast_quick
225 0xe1 instanceof_quick
226 0xe2 invokevirtual_quick_w
227 0xe3 getfield_quick_w
228 0xe4 putfield_quick_w

Reserved Opcodes

202 0xca breakpoint
254 0xfe impdep1
255 0xff impdep2

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
再把助记码的意义再贴出来
Instructions that push a constant onto the stack

aconst_null Push null object reference
iconst_m1 Push int constant -1
iconst_0 Push int constant 0
iconst_1 Push int constant 1
iconst_2 Push int constant 2
iconst_3 Push int constant 3
iconst_4 Push int constant 4
iconst_5 Push int constant 5
lconst_0 Push long constant 0
lconst_1 Push long constant 1
fconst_0 Push float constant 0.0
fconst_1 Push float constant 1.0
fconst_2 Push float constant 2.0
dconst_0 Push double constant 0.0
dconst_1 Push double constant 1.0
bipush Push 8-bit signed integer
sipush Push 16-bit signed integer
ldc Push item from constant pool
ldcw Push item from constant pool (wide index)
ldc2_w Push long or double from constant pool (wide index)

Instructions that load a local variable onto the stack

iload Load int from local variable
lload Load long from local variable
fload Load float from local variable
dload Load double from local variable
aload Load reference from local variable
iload_0 Load int from local variable 0
iload_1 Load int from local variable 1
iload_2 Load int from local variable 2
iload_3 Load int from local variable 3
lload_0 Load long from local variable 0
lload_1 Load long from local variable 1
lload_2 Load long from local variable 2
lload_3 Load long from local variable 3
fload_0 Load float from local variable 0
fload_1 Load float from local variable 1
fload_2 Load float from local variable 2
fload_3 Load float from local variable 3
dload_0 Load double from local variable 0
dload_1 Load double from local variable 1
dload_2 Load double from local variable 2
dload_3 Load double from local variable 3
aload_0 Load reference from local variable 0
aload_1 Load reference from local variable 1
aload_2 Load reference from local variable 2
aload_3 Load reference from local variable 3
iaload Load int from array
laload Load long from array
faload Load float from array
daload Load double from array
aaload Load reference from array
baload Load byte or boolean from array
caload Load char from array
saload Load short from array

Instructions that store a value from the stack into a local variable

istore Store int into local variable
lstore Store long into local variable
fstore Store float into local variable
dstore Store double into local variable
astore Store reference or returnAddress into local variable
istore_0 Store int into local variable 0
istore_1 Store int into local variable 1
istore_2 Store int into local variable 2
istore_3 Store int into local variable 3
lstore_0 Store long into local variable 0
lstore_1 Store long into local variable 1
lstore_2 Store long into local variable 2
lstore_3 Store long into local variable 3
fstore_0 Store float into local variable 0
fstore_1 Store float into local variable 1
fstore_2 Store float into local variable 2
fstore_3 Store float into local variable 3
dstore_0 Store double into local variable 0
dstore_1 Store double into local variable 1
dstore_2 Store double into local variable 2
dstore_3 Store double into local variable 3
astore_0 Store reference or returnAddress into local variable 0
astore_1 Store reference or returnAddress into local variable 1
astore_2 Store reference or returnAddress into local variable 2
astore_3 Store reference or returnAddress into local variable 3
iastore Store into int array
lastore Store into long array
fastore Store into float array
dastore Store into double array
aastore Store into reference array
bastore Store into byte or boolean array
castore Store into char array
sastore Store into short array

The wide instruction

wide Extend a local variable index with additional bytes

Generic (typeless) stack operations

nop Do nothing
pop Pop top stack word
pop2 Pop top two stack words
dup Duplicate top stack word
dup_x1 Duplicate top stack word and put two down
dup_x2 Duplicate top stack word and put three down
dup2 Duplicate top two stack words
dup2_x1 Duplicate top two stack words and put two down
dup2_x2 Duplicate top two stack words and put three down
swap Swap top two stack words

Type Conversion (Chapter 11)

i2l Convert int to long
i2f Convert int to float
i2d Convert int to double
l2i Convert long to int
l2f Convert long to float
l2d Convert long to double
f2i Convert float to int
f2l Convert float to long
f2d Convert float to double
d2i Convert double to int
d2l Convert double to long
d2f Convert double to float
i2b Convert int to byte
i2c Convert int to char
i2s Convert int to short

Integer Arithmetic (Chapter 12)

iadd Add ints
ladd Add longs
isub Subtract ints
lsub Subtract longs
imul Multiply ints
lmul Multiply longs
idiv Divide ints
ldiv Divide longs
irem Calculate remainder of division of ints
lrem Calculate remainder of division of longs
ineg Negate int
lneg Negate long
iinc Increment int local variable by constant

Logic (Chapter 13)

Shift operations

ishl Perform left shift on int
lshl Perform left shift on long
ishr Perform arithmetic right shift on int
lshr Perform arithmetic right shift on long
iushr Perform logical right shift on int
lushr Perform logical right shift on long

Bitwise boolean operations

iand Perform boolean AND on ints
land Perform boolean AND on longs
ior Perform boolean OR on ints
lor Perform boolean OR on longs
ixor Perform boolean XOR on ints
lxor Perform boolean XOR on longs

Floating Point Arithmetic (Chapter 14)

fadd Add floats
dadd Add doubles
fsub Subtract floats
dsub Subtract doubles
fmul Multiply floats
dmul Multiply doubles
fdiv Divide floats
ddiv Divide doubles
frem Calculate remainder of division of floats
drem Calculate remainder of division of doubles
fneg Negate float
dneg Negate double

Objects and Arrays (Chapter 15)

Instructions that deal with objects

new Create a new object
checkcast Make sure object is of a given type
getfield Fetch field from object
putfield Set field in object
getstatic Fetch static field from class
putstatic Set static field in class
instanceof Determine if an object is of a given type

Instructions that deal with arrays

newarray Allocate new array of primitive type components
anewarray Allocate new array of reference type components
arraylength Get length of an array
multianewarray Allocate a new multi-dimensional array

Control Flow (Chapter 16)

Conditional branch instructions

ifeq Branch if equal to 0
ifne Branch if not equal to 0
iflt Branch if less than 0
ifge Branch if greater than or equal to 0
ifgt Branch if greater than 0
ifle Branch if less than or equal to 0
if_icmpeq Branch if ints equal
if_icmpne Branch if ints not equal
if_icmplt Branch if int less than other int
if_icmpge Branch if int greater than or equal to other int
if_icmpgt Branch if int greater than other int
if_icmple Branch if int less than or equal to other int
ifnull Branch if null
ifnonnull Branch if not null
if_acmpeq Branch if object references are equal
if_acmpne Branch if object references not equal

Comparison instructions

lcmp Compare longs
fcmpl Compare floats (-1 on NaN)
fcmpg Compare floats (1 on NaN)
dcmpl Compare doubles (-1 on NaN)
dcmpg Compare doubles (1 on NaN)

Unconditional branch instructions

goto Branch always
goto_w Branch always (wide index)

Table jumping instructions

tableswitch Access jump table by index and jump
lookupswitch Access jump table by key match and jump

Exceptions (Chapter 17)

athrow Throw exception or error

Finally Clauses (Chapter 18)

jsr Jump to subroutine
jsr_w Jump to subroutine (wide index)
ret Return from subroutine

Method Invocation and Return (Chapter 19)

Method invocation instructions

invokevirtual Invoke instance method, dispatch based on run-time type
invokespecial Invoke instance method, dispatching based on compile-time type
invokestatic Invoke a class (static) method
invokeinterface Invoke interface method

Method return instructions

ireturn Return int from method
lreturn Return long from method
freturn Return float from method
dreturn Return double from method
areturn Return reference from method
return Return (void) from method

Thread Synchronization (Chapter 20)

monitorenter Enter and acquire object monitor
monitorexit Release and exit object monitor
2005-7-19 13:48
0
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
这种好东东巨然连个顶的人都没有
2005-7-20 13:18
0
雪    币: 442
活跃值: (1216)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
4
要用的时候再来要,先顶一下
2005-7-20 13:25
0
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
楼上的老兄能不能留个QQ交流一下
2005-7-20 13:33
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
非常好
是我们菜鸟的衣食父母.
顶..............
2005-7-20 19:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
顶起顶起 !
2005-7-20 22:59
0
雪    币: 383
活跃值: (41)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
8
有VB的吗?
2005-7-22 18:43
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
very good
tks
2005-7-23 00:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
支持论坛

支持辛苦发贴
2005-7-23 09:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
超强
2005-7-23 17:58
0
游客
登录 | 注册 方可回帖
返回
//