Chapter 8
Tables of Instructions
The following pages contain lists of the APDU instructions recognized by the Java Card platform, organized by opcode value (TABLE 46) and by opcode mnemonic (TABLE 47).
TABLE 46 – Instructions by Opcode Value
dec
|
hex
|
|
mnemonic
|
dec
|
hex
|
|
mnemonic
|
0
|
00
|
|
nop
|
47
|
2F
|
|
sstore_0
|
1
|
01
|
|
aconst_null
|
48
|
30
|
|
sstore_1
|
2
|
02
|
|
sconst_m1
|
49
|
31
|
|
sstore_2
|
3
|
03
|
|
sconst_0
|
50
|
32
|
|
sstore_3
|
4
|
04
|
|
sconst_1
|
51
|
33
|
|
istore_0
|
5
|
05
|
|
sconst_2
|
52
|
34
|
|
istore_1
|
6
|
06
|
|
sconst_3
|
53
|
35
|
|
istore_2
|
7
|
07
|
|
sconst_4
|
54
|
36
|
|
istore_3
|
8
|
08
|
|
sconst_5
|
55
|
37
|
|
aastore
|
9
|
09
|
|
iconst_m1
|
56
|
38
|
|
bastore
|
10
|
0A
|
|
iconst_0
|
57
|
39
|
|
sastore
|
11
|
0B
|
|
iconst_1
|
58
|
3A
|
|
iastore
|
12
|
0C
|
|
iconst_2
|
59
|
3B
|
|
pop
|
13
|
0D
|
|
iconst_3
|
60
|
3C
|
|
pop2
|
14
|
0E
|
|
iconst_4
|
61
|
3D
|
|
dup
|
15
|
0F
|
|
iconst_5
|
62
|
3E
|
|
dup2
|
16
|
10
|
|
bspush
|
63
|
3F
|
|
dup_x
|
17
|
11
|
|
sspush
|
64
|
40
|
|
swap_x
|
18
|
12
|
|
bipush
|
65
|
41
|
|
sadd
|
19
|
13
|
|
sipush
|
66
|
42
|
|
iadd
|
20
|
14
|
|
iipush
|
67
|
43
|
|
ssub
|
21
|
15
|
|
aload
|
68
|
44
|
|
isub
|
22
|
16
|
|
sload
|
69
|
45
|
|
smul
|
23
|
17
|
|
iload
|
70
|
46
|
|
imul
|
24
|
18
|
|
aload_0
|
71
|
47
|
|
sdiv
|
25
|
19
|
|
aload_1
|
72
|
48
|
|
idiv
|
26
|
1A
|
|
aload_2
|
73
|
49
|
|
srem
|
27
|
1B
|
|
aload_3
|
74
|
4A
|
|
irem
|
28
|
1C
|
|
sload_0
|
75
|
4B
|
|
sneg
|
29
|
1D
|
|
sload_1
|
76
|
4C
|
|
ineg
|
30
|
1E
|
|
sload_2
|
77
|
4D
|
|
sshl
|
31
|
1F
|
|
sload_3
|
78
|
4E
|
|
ishl
|
32
|
20
|
|
iload_0
|
79
|
4F
|
|
sshr
|
33
|
21
|
|
iload_1
|
80
|
50
|
|
ishr
|
34
|
22
|
|
iload_2
|
81
|
51
|
|
sushr
|
35
|
23
|
|
iload_3
|
82
|
52
|
|
iushr
|
36
|
24
|
|
aaload
|
83
|
53
|
|
sand
|
37
|
25
|
|
baload
|
84
|
54
|
|
iand
|
38
|
26
|
|
saload
|
85
|
55
|
|
sor
|
39
|
27
|
|
iaload
|
86
|
56
|
|
ior
|
40
|
28
|
|
astore
|
87
|
57
|
|
sxor
|
41
|
29
|
|
sstore
|
88
|
58
|
|
ixor
|
42
|
2A
|
|
istore
|
89
|
59
|
|
sinc
|
43
|
2B
|
|
astore_0
|
90
|
5A
|
|
iinc
|
44
|
2C
|
|
astore_1
|
91
|
5B
|
|
s2b
|
45
|
2D
|
|
astore_2
|
92
|
5C
|
|
s2i
|
46
|
2E
|
|
astore_3
|
93
|
5D
|
|
i2b
|
|
Instructions by Opcode Value (continued)
dec
|
hex
|
|
mnemonic
|
dec
|
hex
|
|
mnemonic
|
94
|
5E
|
|
i2s
|
141
|
8D
|
|
invokestatic
|
95
|
5F
|
|
icmp
|
142
|
8E
|
|
invokeinterface
|
96
|
60
|
|
ifeq
|
143
|
8F
|
|
new
|
97
|
61
|
|
ifne
|
144
|
90
|
|
newarray
|
98
|
62
|
|
iflt
|
145
|
91
|
|
anewarray
|
99
|
63
|
|
ifge
|
146
|
92
|
|
arraylength
|
100
|
64
|
|
ifgt
|
147
|
93
|
|
athrow
|
101
|
65
|
|
ifle
|
148
|
94
|
|
checkcast
|
102
|
66
|
|
ifnull
|
149
|
95
|
|
instanceof
|
103
|
67
|
|
ifnonnull
|
150
|
96
|
|
sinc_w
|
104
|
68
|
|
if_acmpeq
|
151
|
97
|
|
iinc_w
|
105
|
69
|
|
if_acmpne
|
152
|
98
|
|
ifeq_w
|
106
|
6A
|
|
if_scmpeq
|
153
|
99
|
|
ifne_w
|
107
|
6B
|
|
if_scmpne
|
154
|
9A
|
|
iflt_w
|
108
|
6C
|
|
if_scmplt
|
155
|
9B
|
|
ifge_w
|
109
|
6D
|
|
if_scmpge
|
156
|
9C
|
|
ifgt_w
|
110
|
6E
|
|
if_scmpgt
|
157
|
9D
|
|
ifle_w
|
111
|
6F
|
|
if_scmple
|
158
|
9E
|
|
ifnull_w
|
112
|
70
|
|
goto
|
159
|
9F
|
|
ifnonnull_w
|
113
|
71
|
|
jsr
|
160
|
A0
|
|
if_acmpeq_w
|
114
|
72
|
|
ret
|
161
|
A1
|
|
if_acmpne_w
|
115
|
73
|
|
stableswitch
|
162
|
A2
|
|
if_scmpeq_w
|
116
|
74
|
|
itableswitch
|
163
|
A3
|
|
if_scmpne_w
|
117
|
75
|
|
slookupswitch
|
164
|
A4
|
|
if_scmplt_w
|
118
|
76
|
|
ilookupswitch
|
165
|
A5
|
|
if_scmpge_w
|
119
|
77
|
|
areturn
|
166
|
A6
|
|
if_scmpgt_w
|
120
|
78
|
|
sreturn
|
167
|
A7
|
|
if_scmple_w
|
121
|
79
|
|
ireturn
|
168
|
A8
|
|
goto_w
|
122
|
7A
|
|
return
|
169
|
A9
|
|
getfield_a_w
|
123
|
7B
|
|
getstatic_a
|
170
|
AA
|
|
getfield_b_w
|
124
|
7C
|
|
getstatic_b
|
171
|
AB
|
|
getfield_s_w
|
125
|
7D
|
|
getstatic_s
|
172
|
AC
|
|
getfield_i_w
|
126
|
7E
|
|
getstatic_i
|
173
|
AD
|
|
getfield_a_this
|
127
|
7F
|
|
putstatic_a
|
174
|
AE
|
|
getfield_b_this
|
128
|
80
|
|
putstatic_b
|
175
|
AF
|
|
getfield_s_this
|
129
|
81
|
|
putstatic_s
|
176
|
B0
|
|
getfield_i_this
|
130
|
82
|
|
putstatic_i
|
177
|
B1
|
|
putfield_a_w
|
131
|
83
|
|
getfield_a
|
178
|
B2
|
|
putfield_b_w
|
132
|
84
|
|
getfield_b
|
179
|
B3
|
|
putfield_s_w
|
133
|
85
|
|
getfield_s
|
180
|
B4
|
|
putfield_i_w
|
134
|
86
|
|
getfield_i
|
181
|
B5
|
|
putfield_a_this
|
135
|
87
|
|
putfield_a
|
182
|
B6
|
|
putfield_b_this
|
136
|
88
|
|
putfield_b
|
183
|
B7
|
|
putfield_s_this
|
137
|
89
|
|
putfield_s
|
184
|
B8
|
|
putfield_i_this
|
138
|
8A
|
|
putfield_i
|
|
|
|
…
|
139
|
8B
|
|
invokevirtual
|
254
|
FE
|
|
impdep1
|
140
|
8C
|
|
invokespecial
|
255
|
FF
|
|
impdep2
|
|
TABLE 47 – Instructions by Opcode Mnemonic
mnemonic
|
dec
|
hex
|
|
mnemonic
|
dec
|
hex
|
aaload
|
36
|
24
|
|
iand
|
84
|
54
|
aastore
|
55
|
37
|
|
iastore
|
58
|
3A
|
aconst_null
|
1
|
01
|
|
icmp
|
95
|
5F
|
aload
|
21
|
15
|
|
iconst_0
|
10
|
0A
|
aload_0
|
24
|
18
|
|
iconst_1
|
11
|
0B
|
aload_1
|
25
|
19
|
|
iconst_2
|
12
|
0C
|
aload_2
|
26
|
1A
|
|
iconst_3
|
13
|
0D
|
aload_3
|
27
|
1B
|
|
iconst_4
|
14
|
0E
|
anewarray
|
145
|
91
|
|
iconst_5
|
15
|
0F
|
areturn
|
119
|
77
|
|
iconst_m1
|
9
|
09
|
arraylength
|
146
|
92
|
|
idiv
|
72
|
48
|
astore
|
40
|
28
|
|
if_acmpeq
|
104
|
68
|
astore_0
|
43
|
2B
|
|
if_acmpeq_w
|
160
|
A0
|
astore_1
|
44
|
2C
|
|
if_acmpne
|
105
|
69
|
astore_2
|
45
|
2D
|
|
if_acmpne_w
|
161
|
A1
|
astore_3
|
46
|
2E
|
|
if_scmpeq
|
106
|
6A
|
athrow
|
147
|
93
|
|
if_scmpeq_w
|
162
|
A2
|
baload
|
37
|
25
|
|
if_scmpge
|
109
|
6D
|
bastore
|
56
|
38
|
|
if_scmpge_w
|
165
|
A5
|
bipush
|
18
|
12
|
|
if_scmpgt
|
110
|
6E
|
bspush
|
16
|
10
|
|
if_scmpgt_w
|
166
|
A6
|
checkcast
|
148
|
94
|
|
if_scmple
|
111
|
6F
|
dup
|
61
|
3D
|
|
if_scmple_w
|
167
|
A7
|
dup_x
|
63
|
3F
|
|
if_scmplt
|
108
|
6C
|
dup2
|
62
|
3E
|
|
if_scmplt_w
|
164
|
A4
|
getfield_a
|
131
|
83
|
|
if_scmpne
|
107
|
6B
|
getfield_a_this
|
173
|
AD
|
|
if_scmpne_w
|
163
|
A3
|
getfield_a_w
|
169
|
A9
|
|
ifeq
|
96
|
60
|
getfield_b
|
132
|
84
|
|
ifeq_w
|
152
|
98
|
getfield_b_this
|
174
|
AE
|
|
ifge
|
99
|
63
|
getfield_b_w
|
170
|
AA
|
|
ifge_w
|
155
|
9B
|
getfield_i
|
134
|
86
|
|
ifgt
|
100
|
64
|
getfield_i_this
|
176
|
B0
|
|
ifgt_w
|
156
|
9C
|
getfield_i_w
|
172
|
AC
|
|
ifle
|
101
|
65
|
getfield_s
|
133
|
85
|
|
ifle_w
|
157
|
9D
|
getfield_s_this
|
175
|
AF
|
|
iflt
|
98
|
62
|
getfield_s_w
|
171
|
AB
|
|
iflt_w
|
154
|
9A
|
getstatic_a
|
123
|
7B
|
|
ifne
|
97
|
61
|
getstatic_b
|
124
|
7C
|
|
ifne_w
|
153
|
99
|
getstatic_i
|
126
|
7E
|
|
ifnonnull
|
103
|
67
|
getstatic_s
|
125
|
7D
|
|
ifnonnull_w
|
159
|
9F
|
goto
|
112
|
70
|
|
ifnull
|
102
|
66
|
goto_w
|
168
|
A8
|
|
ifnull_w
|
158
|
9E
|
i2b
|
93
|
5D
|
|
iinc
|
90
|
5A
|
i2s
|
94
|
5E
|
|
iinc_w
|
151
|
97
|
iadd
|
66
|
42
|
|
iipush
|
20
|
14
|
iaload
|
39
|
27
|
|
iload
|
23
|
17
|
|
Instructions by Opcode Mnemonic (continued)
mnemonic
|
dec
|
hex
|
|
mnemonic
|
dec
|
hex
|
iload_0
|
32
|
20
|
|
putstatic_s
|
129
|
81
|
iload_1
|
33
|
21
|
|
ret
|
114
|
72
|
iload_2
|
34
|
22
|
|
return
|
122
|
7A
|
iload_3
|
35
|
23
|
|
s2b
|
91
|
5B
|
ilookupswitch
|
118
|
76
|
|
s2i
|
92
|
5C
|
imul
|
70
|
46
|
|
sadd
|
65
|
41
|
ineg
|
76
|
4C
|
|
saload
|
38
|
26
|
instanceof
|
149
|
95
|
|
sand
|
83
|
53
|
invokeinterface
|
142
|
8E
|
|
sastore
|
57
|
39
|
invokespecial
|
140
|
8C
|
|
sconst_0
|
3
|
03
|
invokestatic
|
141
|
8D
|
|
sconst_1
|
4
|
04
|
invokevirtual
|
139
|
8B
|
|
sconst_2
|
5
|
05
|
ior
|
86
|
56
|
|
sconst_3
|
6
|
06
|
irem
|
74
|
4A
|
|
sconst_4
|
7
|
07
|
ireturn
|
121
|
79
|
|
sconst_5
|
8
|
08
|
ishl
|
78
|
4E
|
|
sconst_m1
|
2
|
02
|
ishr
|
80
|
50
|
|
sdiv
|
71
|
47
|
istore
|
42
|
2A
|
|
sinc
|
89
|
59
|
istore_0
|
51
|
33
|
|
sinc_w
|
150
|
96
|
istore_1
|
52
|
34
|
|
sipush
|
19
|
13
|
istore_2
|
53
|
35
|
|
sload
|
22
|
16
|
istore_3
|
54
|
36
|
|
sload_0
|
28
|
1C
|
isub
|
68
|
44
|
|
sload_1
|
29
|
1D
|
itableswitch
|
116
|
74
|
|
sload_2
|
30
|
1E
|
iushr
|
82
|
52
|
|
sload_3
|
31
|
1F
|
ixor
|
88
|
58
|
|
slookupswitch
|
117
|
75
|
jsr
|
113
|
71
|
|
smul
|
69
|
45
|
new
|
143
|
8F
|
|
sneg
|
75
|
4B
|
newarray
|
144
|
90
|
|
sor
|
85
|
55
|
nop
|
0
|
00
|
|
srem
|
73
|
49
|
pop
|
59
|
3B
|
|
sreturn
|
120
|
78
|
pop2
|
60
|
3C
|
|
sshl
|
77
|
4D
|
putfield_a
|
135
|
87
|
|
sshr
|
79
|
4F
|
putfield_a_this
|
181
|
B5
|
|
sspush
|
17
|
11
|
putfield_a_w
|
177
|
B1
|
|
sstore
|
41
|
29
|
putfield_b
|
136
|
88
|
|
sstore_0
|
47
|
2F
|
putfield_b_this
|
182
|
B6
|
|
sstore_1
|
48
|
30
|
putfield_b_w
|
178
|
B2
|
|
sstore_2
|
49
|
31
|
putfield_i
|
138
|
8A
|
|
sstore_3
|
50
|
32
|
putfield_i_this
|
184
|
B8
|
|
ssub
|
67
|
43
|
putfield_i_w
|
180
|
B4
|
|
stableswitch
|
115
|
73
|
putfield_s
|
137
|
89
|
|
sushr
|
81
|
51
|
putfield_s_this
|
183
|
B7
|
|
swap_x
|
64
|
40
|
putfield_s_w
|
179
|
B3
|
|
sxor
|
87
|
57
|
putstatic_a
|
127
|
7F
|
|
|
|
|
putstatic_b
|
128
|
80
|
|
|
|
|
putstatic_i
|
130
|
82
|
|
|
|
|
|
|
Virtual Machine Specification for the Java Card Platform Specification, 2.2.1
|
Copyright © 2003 Sun Microsystems, Inc.
All rights reserved.