Professional Documents
Culture Documents
A
Opcode Tables
In Chapter 2, you saw that Java bytecode is found in the code attribute part of
the Java class file. Table A-1 lists all the possible Java bytecodes. The hex value
for each opcode is shown along with the assembler-like opcode mnemonic.
Table A-1. Java Bytecode-to-Opcode Mapping
2 (OX02) iconst ml
3 (OX03) iconst 0
4 (OX04) iconst 1
5 (OXOS) iconst 2
6 (Ox06) iconst_3
7 (OX07) iconst_4
8 (ox08) iconst_5
9 (OX09) lconst 0
256 APPENDIX A: Opcode Tables
10 (oxoa) Ieonst 1
11 (oxOb) feonst 0
12 (oxoe) feonst 1
13 (oxOd) feonst 2
14 (oxoe) deonst 0
15 (oxof) deonst 1
16 (OX10) bipush
17 (OXll) sipush
18 (OX12) Ide
19 (OX13) Ide w
20 (OX14) Ide2 w
21 (OX1S) iload
22 (OX16) Hoad
23 (OX17) Hoad
24 (OX18) dload
25 (OX19) aload
26 (oxla) iload 0
27 (oxlb) iload 1
28 (oxle) iload 2
29 (oxld) iload_3
30 (oxle) Hoad 0
APPENDIX A: Opcode Tables 257
31 (Ox1f) Hoad 1
32 (OX20) Hoad 2
33 (OX21) Hoad_3
34 (OX22) Hoad 0
35 (OX23) Hoad 1
36 (OX24) Hoad 2
37 (OX25) Hoad_3
38 (OX26) dload 0
39 (OX27) dload 1
40 (OX28) dload 2
41 (OX29) dload_3
42 (Ox2a) aload 0
43 (Ox2b) aload 1
44 (OX2C) aload 2
45 (OX2d) aload_3
46 (Ox2e) iaload
47 (ox2f) laload
48 (OX30) faload
49 (OX31) daload
50 (OX32) aaload
51 (OX33) baload
52 (OX34) caload
258 APPENDIX A: Opcode Tables
53 (OX35) saload
54 (OX36) istore
55 (OX37) lstore
56 (OX38) fstore
57 (OX39) dstore
58 (ox3a) astore
59 (OX3b) istore 0
60 (OX3C) istore 1
61 (OX3d) istore 2
62 (ox3e) istore_3
63 (OX3f) lstore 0
64 (ox40) lstore 1
65 (ox41) lstore 2
66 (OX42) lstore_3
67 (ox43) fstore 0
68 (ox44) fstore 1
69 (ox45) fstore 2
70 (OX46) fstore_3
71 (OX47) dstore 0
72 (ox48) dstore 1
73 (ox49) dstore 2
APPENDIX A: Opcode Tables 259
74 (Ox4a) dstore_3
75 (Ox4b) astore 0
76 (OX4C) astore 1
77 (OX4d) astore 2
78 (Ox4e) astore_3
79 (OX4f) iastore
80 (Ox50) lastore
81 (OX51) fastore
82 (Ox52) dastore
83 (OX53) aastore
84 (OX54) bastore
85 (Ox55) castore
86 (OX56) sastore
87 (OX57) pop
88 (Ox58) pop2
89 (OX59) dup
90 (Ox5a) dup_X1
91 (OX5b) dup_X2
92 (Ox5c) dup2
93 (Ox5d) dup2_X1
94 (Ox5e) dup2_X2
95 (OX5f) swap
260 APPENDIX A: Opcode Tables
96 (ox60) iadd
97 (ox61) ladd
98 (Ox62) fadd
99 (ox63) dadd
Table A-2 lists all the possible Dalvik bytecodes encountered first in Chapter 3
and then throughput the book. The hex value for each opcode is shown along
with the assembler-like opcode mnemonic.
Table A-2. Dalvik 8ytecode-to-Opcode Mapping
1 (OXOo) Nop
4 (OX03) move/16
5 (OX04) move-wide
7 (Ox06) move-wide/16
10 (OX09) move-object/16
11 (OXOA) move-result vx
12 (OXOB) move-result-wide vx
13 (OXOC) move-result-object vx
14 (oxOD) move-exception vx
15 (OxOE) return-void
16 (OxOF) return vx
17 (OX10) return-wide vx
18 (OXll) return-object vx
28 (OX1B) const-string-jumbo
30 (OX1D) monitor-enter vx
31 (OX1E) monitor-exit
40 (OX27) throw vx
APPENDIX A: Opcode Tables 267
46 (OX2D) cmpl-float
63 (OX3E) unused_3E
64 (OX3F) unused_3F
65 (OX40) unused_40
66 (ox41) unused_41
67 (ox42) unused_42
68 (OX43) unused_43
. u .z
Undx converter, 118 Z4Root
disabling root, 99
. V installation, 96-97
temporary or permanent root, 98
Visual Basic (VB), 10-11