C H A P T E R  8

Tables of Instructions

The following pages contain lists of the APDU instructions recognized by the Java Card platform, organized by opcode value (TABLE 8-1) and by opcode mnemonic (TABLE 8-2).


TABLE 8-1 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

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 8-2 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

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