javaseiten.de   |   Version 0.6
 

4.7. JVM-Befehlssatz: Kurzbeschreibung B

 

 

Befehl Operandenstapel Opcode
baload ..., arrayref, index --> ..., value 0x33

Lade einen byte oder boolean-Wert aus einem byte- bzw. boolean-Array auf den Operandenstapel.

Bezeichner Typ Beschreibung
arrayref reference Referenz auf ein byte- oder boolean-Array.
index int Index im Array.
value int  

Mit Hilfe von arrayref und index wird der Wert value ermittelt und auf den Stapel gelegt. Dabei ist value vom Typ int, denn für den tatsächlichen byte- bzw. boolean-Wert wird bei der Abarbeitung des JVM-Befehls der interne Typ int verwendet (siehe Tabelle 4.7). Die beiden Boolean-Literale true und false werden durch die Zahlen 1 und 0 repräsentiert.

Beispiel 1: byte-Wert auf Operandenstapel laden.

byte[] b = {4, 5};         0: iconst_2
                           1: newarray byte
                           3: dup
                           4: iconst_0
                           5: iconst_4
                           6: bastore
                           7: dup
                           8: iconst_1
                           9: iconst_5
                          10: bastore
                          11: astore_1
byte b0 = b[0];           12: aload_1
                          13: iconst_0
                          14: baload
                          15: istore_2

Mit bastore werden zunächst die beiden Zahlenwerte 4 und 5 in das Array geschrieben. Anschließend erfolgt das Auslesen des ersten Elements (Index 0) mit baload.

Beispiel 2: boolean-Wert auf Operandenstapel laden.

boolean[] b = {true, false};         0: iconst_2
                                     1: newarray boolean
                                     3: dup
                                     4: iconst_0
                                     5: iconst_1
                                     6: bastore
                                     7: dup
                                     8: iconst_1
                                     9: iconst_0
                                    10: bastore
                                    11: astore_1
boolean b0 = b[0];                  12: aload_1
                                    13: iconst_0
                                    14: baload
                                    15: istore_2

Mit bastore werden zunächst die beiden Zahlenwerte 1 (Bytecodestelle 5) und 0 (Bytecodestelle 9) in das boolean-Array geschrieben. Dabei entspricht 1 dem Boolean-Literal true und 0 steht für false. Anschließend erfolgt das Auslesen des ersten Elements (Index 0) mit baload.

 

 

bastore ..., arrayref, index, value --> ... 0x54

Speichere einen byte oder boolean-Wert in ein byte- bzw. boolean-Array.

Bezeichner Typ Beschreibung
arrayref reference Referenz auf ein byte- oder boolean-Array.
index int Index im Array.
value int  

Der zu speichernde Wert value ist vom Typ int, denn für den tatsächlichen byte- bzw. boolean-Wert wird bei der Abarbeitung des JVM-Befehls der interne Typ int verwendet (siehe Tabelle 4.7). Die beiden Boolean-Literale true und false werden durch die Zahlen 1 und 0 repräsentiert. Siehe auch die Beispiele zu baload.

 

 

bipush byte ... --> ..., value 0x10

Lege nachfolgendes byte auf den Operandenstapel.

Bezeichner Typ Beschreibung
byte byte  
value int  

Der Wert byte wird zunächst in einen int-Wert value umgewandelt und dieser wird anschließend auf den Operandenstapel gelegt. Siehe dazu auch: Ablegen von ganzen Zahlen auf dem Operandenstapel.

Beispiel:

int i = 6;        0: bipush 6
                  2: istore_1

 

 

 

Diese Seite nutzt Google-Dienste - siehe dazu Datenschutz.

Copyright © 2006, 2007 Harald Roeder