javaseiten.de   |   Version 0.6
 

4.19. JVM-Befehlssatz: Kurzbeschreibung S

 

 

Befehl Operandenstapel Opcode
saload ..., arrayref, index --> ..., value 0x35

Lade einen short-Wert aus einem short-Array auf den Operandenstapel.

Bezeichner Typ Beschreibung
arrayref reference Referenz auf ein Array.
index int Index im Array.
value int  

Mit Hilfe von arrayref und index wird ein short-Wert ermittelt. Die Zahl wird als int-Wert value auf den Stapel gelegt. Für den tatsächlichen short-Wert wird bei der Abarbeitung des JVM-Befehls der interne Typ int verwendet (siehe Tabelle 4.7).

Beispiel:

short[] s = {4, 5};         0: iconst_2
                            1: newarray short
                            3: dup
                            4: iconst_0
                            5: iconst_4
                            6: sastore
                            7: dup
                            8: iconst_1
                            9: iconst_5
                           10: sastore
                           11: astore_1
short s0 = s[0];           12: aload_1
                           13: iconst_0
                           14: saload
                           15: istore_2

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

 

 

sastore ..., arrayref, index, value --> ... 0x56

Speichere einen short-Wert in ein short-Array.

Bezeichner Typ Beschreibung
arrayref reference Referenz auf ein Array.
index int Index im Array.
value int  

Auf dem Operandenstapel befinden sich, vor der Ausführung des Befehls, die Referenz auf das Array, der Index des Elements im Array und der zu speichernde Wert value, der vom Typ int ist. Für den tatsächlichen short-Wert wird bei der Abarbeitung des JVM-Befehls der interne Typ int verwendet (siehe Tabelle 4.7). Siehe auch das Beispiel zu saload.

 

 

sipush byte1 byte2 ... --> ..., value 0x11

Lege nachfolgenden short-Wert auf den Operandenstapel.

Bezeichner Typ Beschreibung
byte1 Vorzeichenloses Byte  
byte2 Vorzeichenloses Byte  
value int  

Aus den auf den Opcode folgenden zwei Bytes byte1 und byte2 wird zunächst eine short-Zahl ermittelt: (byte1 << 8) | byte2. Der berechnete Wert wird danach in einen int-Wert umgewandelt und dieser wird anschließend auf den Operandenstapel gelegt. Siehe dazu auch: Ablegen von ganzen Zahlen auf dem Operandenstapel

Beispiel:

int a = 128;        0: sipush 128
                    3: istore_1

 

 

swap ..., value2, value1 --> ..., value1, value2 0x5f

Vertausche die beiden obersten Elemente des Operandenstapels.

Bezeichner Typ Beschreibung
value1 int, float, reference oder returnAddress  
value2 int, float, reference oder returnAddress  

Dieser JVM-Befehl unterstützt nur das Vertauschen entsprechender Elemente, deren Typen aus Typkategorie 1 (interner Typ) stammen (siehe dazu auch Tabelle 4.7).

 

 

 

Diese Seite nutzt Google-Dienste - siehe dazu Datenschutz.

Copyright © 2006, 2007 Harald Roeder