javaseiten.de   |   Version 0.6
 

4.17. JVM-Befehlssatz: Kurzbeschreibung P

 

 

Befehl Operandenstapel Opcode
pop ..., value --> ... 0x57

Nehme das oberste Element value vom Operandenstapel.

Bezeichner Typ Beschreibung
value int, float, reference oder returnAddress  

Der Typ von value ist aus Typkategorie 1 (interner Typ, siehe auch Tabelle 4.7).

 

 

pop2 Siehe Beschreibung. 0x58

Es werden entweder zwei Elemente oder nur ein Element vom Operandenstapel genommen, abhängig vom Typ (Typkategorie) der Elemente an der Spitze des Operandenstapels (siehe dazu auch Tabelle 4.7).

 

1. Möglichkeit: Die Typen der beiden obersten Elemente des Operandenstapels sind aus Typkategorie 1 (interner Typ).

Operandenstapel: ..., value2, value1 --> ...

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

Nehme die beide obersten Elemente value1 und value2 vom Operandenstapel.

 

2. Möglichkeit: Der Typ des obersten Elements des Operandenstapels ist aus Typkategorie 2 (interner Typ).

Operandenstapel: ..., value --> ...

Bezeichner Typ Beschreibung
value long oder double  

Nehme das oberste Elemente value vom Operandenstapel.

 

 

putfield indexbyte1 indexbyte2 ..., objectref, value --> ... 0xb5

Weise einem Feld eines Objekts (Instanzvariable) einen bestimmten Wert zu.

Bezeichner Typ Beschreibung
indexbyte1 Vorzeichenloses Byte Index im (Laufzeit-)Konstantenpool.
indexbyte2 Vorzeichenloses Byte Index im (Laufzeit-)Konstantenpool.
objectref reference Referenz auf ein Objekt.
value Abhängig vom Typ des Feldes. Wert, der zugewiesen werden soll.

Mit Hilfe von indexbyte1 und indexbyte2 wird ein Index im (Laufzeit-)Konstantenpool der aktuellen Klasse berechnet: (indexbyte1 << 8) | indexbyte2. Die Konstante bei diesem Index ist ein Verweis auf ein Feld. Durch diesen Verweis werden der Name des Feldes, der Typ des Feldes (Felddeskriptor) und die Klasse, in der das Feld deklariert ist, zugänglich. Der Typ vom Wert value, der dem referenzierten Feld zugeordnet werden soll, muss mit dem Typ des Felddeskriptors kompatibel sein. Ist dies der Fall, wird der Wert value und die Referenz auf das Objekt objectref zunächst vom Operandenstapel geholt. Der Instanzvariablen, die durch objectref zugänglich ist, wird der entsprechende Wert zugewiesen.

Beispiel: Siehe dazu getfield.

 

 

putstatic indexbyte1 indexbyte2 ..., value --> ... 0xb3

Weise einem statischen Feld einer Klasse (statische Variable, Klassenvariable) einen bestimmten Wert zu.

Bezeichner Typ Beschreibung
indexbyte1 Vorzeichenloses Byte Index im (Laufzeit-)Konstantenpool.
indexbyte2 Vorzeichenloses Byte Index im (Laufzeit-)Konstantenpool.
value Abhängig vom Typ des statischen Feldes. Wert, der zugewiesen werden soll.

Mit Hilfe von indexbyte1 und indexbyte2 wird ein Index im (Laufzeit-)Konstantenpool der aktuellen Klasse berechnet: (indexbyte1 << 8) | indexbyte2. Die Konstante bei diesem Index ist ein Verweis auf ein Feld. Durch diesen Verweis werden der Name des Feldes, der Typ des Feldes (Felddeskriptor) und die Klasse, in der das Feld deklariert ist, zugänglich. Der Typ vom Wert value, der dem statischen Feld zugewiesen werden soll, muss mit dem Typ des Felddeskriptors kompatibel sein. Ist dies der Fall, wird der Wert value zunächst vom Operandenstapel geholt und anschließend dem statischen Feld zugewiesen.

Beispiel: Siehe dazu getstatic.

 

 

 

Diese Seite nutzt Google-Dienste - siehe dazu Datenschutz.

Copyright © 2006, 2007 Harald Roeder