Section courante

A propos

Section administrative du site

Voici une table de référence du jeu d'instructions de la machine virtuelle de Java sous la syntaxe Jasmin :

Instruction Inline Nom technique Description
aaload 032h retrieve object reference from array Cette instruction permet de demander une référence d'objet d'un tableau d'objets et les places dans la pile.
aastore 053h store object reference in array Cette instruction permet d'entreposer une référence d'objet dans un tableau d'objets.
aconst_null 001h push null Cette instruction permet d'empiler une référence d'objet nulle dans la pile.
aload 019h retrieve object reference from local variable Cette instruction permet de demander une référence d'objet d'une variable locale et l'empile dans la pile d'opérande.
aload_0 02Ah retrieve object reference from local variable 0 Cette instruction permet de demander la référence d'objet d'une variable locale 0.
aload_1 02Bh retrieve object reference from local variable 1 Cette instruction permet de demander la référence d'objet d'une variable locale 1.
aload_2 02Ch retrieve object reference from local variable 2 Cette instruction permet de demander la référence d'objet d'une variable locale 2.
aload_3 02Dh retrieve object reference from local variable 3 Cette instruction permet de demander la référence d'objet d'une variable locale 3.
anewarray 0BDh allocate new array for objects Cette instruction permet d'allouer un nouveau tableau.
areturn 0B0h return from method with object reference result Cette instruction permet de retourner avec les objets référencés
arraylength 0BEh get length of array Cette instruction permet de demander la longueur du tableau
astore 03Ah store object reference in local variable Cette instruction permet d'entreposer la référence dans la variable local.
astore_0 04Bh store object reference in local variable 0 Cette instruction permet d'entreposer la référence dans la variable local 0
astore_1 04Ch store object reference in local variable 1 Cette instruction permet d'entreposer la référence dans la variable local 1
astore_2 04Dh store object reference in local variable 2 Cette instruction permet d'entreposer la référence dans la variable local 2
astore_3 04Eh store object reference in local variable 3 Cette instruction permet d'entreposer la référence dans la variable local 3
athrow 0BFh throw an exception Cette instruction permet de déclencher une exception ou une erreur.
baload 033h retrieve byte/boolean from array Cette instruction permet de rechercher un entrer un octet ou une booléen dans un tableau
bastore 054h store in byte/boolean array Cette instruction permet d'entreposer un octet ou un booléen dans un tableau
bipush 010h push one-byte signed integer Cette instruction permet d'empiler un octet entier
breakpoint 0CAh reserved opcode Cette instruction permet de provoquer un point d'arrêt.
caload 034h retrieve character from array Cette instruction permet de demander un caractère dans un tableau.
castore 055h store in character array Cette instruction permet d'entreposer un caractère dans un tableau
checkcast 0C0h ensure type of an object or array Cette instruction permet de vérifier le type d'objet ou de tableau.
d2f 090h convert double to float Cette instruction permet de convertir un nombre réel de double précision en nombre réel de simple précision.
d2i 08Eh convert double to integer Cette instruction permet de convertir un nombre réel de double précision en nombre entier.
d2l 08Fh convert double to long integer Cette instruction permet de convertir un nombre réel de double précision en nombre entier long
dadd 063h add two doubles Cette instruction permet d'additionner deux nombres réel de double précision
daload 031h retrieve double-precision float from array Cette instruction permet de rechercher un nombre réel de double précision dans un tableau
dastore 052h store in double-precision float array Cette instruction permet d'entreposer un nombre réel de double précision dans un tableau
dcmpg 098h compare two doubles (1 on NaN) Cette instruction permet de comparer deux nombre réel de double précision
dcmpl 097h compare two doubles (-1 on NaN) Cette instruction permet de comparer deux nombres réel de double précision.
dconst_0 00Eh push the double 0.0 Cette instruction permet d'empiler la valeur 0.0 en nombre réel de double précision.
dconst_1 00Fh push the double 1.0 Cette instruction permet d'empiler la valeur 1.0 en nombre réel de double précision.
ddiv 06Fh divides two doubles Cette instruction permet d'effectuer une division de deux nombres réel de double précision.
dload 018h retrieve double from local variable Cette instruction permet de demander un nombre réel de double précision et de le mettre dans une variable local
dload_0 026h retrieve double from local variables 0 and 1 Cette instruction permet de demander un nombre réel de double précision et de le mettre dans la variable local 0 et 1
dload_1 027h retrieve double from local variables 1 and 2 Cette instruction permet de demander un nombre réel de double précision et de le mettre dans la variable local 1 et 2
dload_2 028h retrieve double from local variables 2 and 3 Cette instruction permet de demander un nombre réel de double précision et de le mettre dans la variable local 2 et 3
dload_3 029h retrieve double from local variables 3 and 4 Cette instruction permet de demander un nombre réel de double précision et de le mettre dans la variable local 3 et 4
dmul 06Bh multiply two doubles Cette instruction permet de multiplier deux nombres réel de double précision.
dneg 077h negate a double Cette instruction permet d'effectuer une négation d'un nombre réel de double précision.
drem 073h remainder of two doubles Cette instruction permet de calculer le restant d'une division de deux nombres réels de double précision.
dreturn 0AFh return from method with double result Cette instruction permet de retourner d'une méthode avec un nombre réel de double précision.
dstore 039h store double in local variable Cette instruction permet d'entreposer un nombre réel de double précision dans une variable local
dstore_0 049h store double in local variable 0 et 1 Cette instruction permet d'entreposer un nombre réel de double précision dans la variable local 0 et 1
dstore_1 04Ah store double in local variable 1 et 2 Cette instruction permet d'entreposer un nombre réel de double précision dans la variable local 1 et 2
dstore_2 047h store double in local variable 2 et 3 Cette instruction permet d'entreposer un nombre réel de double précision dans la variable local 2 et 3
dstore_3 048h store double in local variable 3 et 4 Cette instruction permet d'entreposer un nombre réel de double précision dans la variable local 3 et 4
dsub 067h subtract two doubles Cette instruction permet de soustraire deux nombres réel de double précision.
dup 059h duplicate top single-word item on the stack Cette instruction permet de dupliquer un item de simple mot du haut de la pile.
dup2 05Ch duplicate top two stack words Cette instruction permet de dupliquer deux mots en haut de la pile.
dup2_x1 05Dh duplicate two words and insert beneath third word Cette instruction permet de dupliquer deux mots et de l'insérer sous le troisième mot.
dup2_x2 05Eh duplicate two words and insert beneath fourth word Cette instruction permet de dupliquer deux mots et de l'insérer sous le quatrième mot.
dup_x1 05Ah duplicate top stack word and insert beneath second word Cette instruction permet de dupliquer le mot du haut de la pile et de l'insérer dans le second mot.
dup_x2 05Bh duplicate top stack word and insert beneath third word Cette instruction permet de dupliquer le mot du haut de la pile et de l'insérer dans le troisième mot.
f2d 08Dh convert float to double Cette instruction permet de convertir un nombre réel de simple précision en nombre réel de double précision.
f2i 08Bh convert float to integer Cette instruction permet de convertir un nombre réel de simple précision en nombre entier.
f2l 08Ch convert float to long integer Cette instruction permet de convertir un nombre réel de simple précision en nombre entier long.
fadd 062h add two floats Cette instruction permet d'additionner deux nombres réel de simple précision.
faload 030h retrieve float from array Cette instruction permet de demander un nombre réel de simple précision à partir d'un tableau.
fastore 051h store in single-precision float array Cette instruction permet d'entreposer un nombre réel de simple précision dans un tableau.
fcmpg 096h single-precision float comparison (1 on NaN) Cette instruction permet d'effectuer une comparaison d'un nombre réel de simple précision (1 dans NaN).
fcmpl 095h single-precision float comparison (-1 on NaN) Cette instruction permet d'effectuer une comparaison d'un nombre réel de simple précision (-1 dans NaN).
fconst_0 00Bh push the single float 0.0 Cette instruction permet d'empiler la valeur 0,0 en nombre réel de simple précision.
fconst_1 00Ch push the single float 1.0 Cette instruction permet d'empiler la valeur 1,0 en nombre réel de simple précision.
fconst_2 00Dh push the single float 2.0 Cette instruction permet d'empiler la valeur 2,0 en nombre réel de simple précision.
fdiv 06Eh divide two floats Cette instruction permet de diviser deux nombres réel de simple précision.
fload 017h retrieve float from local variable Cette instruction permet de demander un nombre réel de simple précision de la variable locale.
fload_0 022h retrieve float from local variable 0 Cette instruction permet de demander un nombre réel de simple précision de la variable locale 0.
fload_1 023h retrieve float from local variable 1 Cette instruction permet de demander un nombre réel de simple précision de la variable locale 1.
fload_2 024h retrieve float from local variable 2 Cette instruction permet de demander un nombre réel de simple précision de la variable locale 2.
fload_3 025h retrieve float from local variable 3 Cette instruction permet de demander un nombre réel de simple précision de la variable locale 3.
fmul 06Ah multiply two floats Cette instruction permet de multiplier deux nombres réel de simple précision.
fneg 076h negate a float Cette instruction permet d'effectuer la négation d'un nombre réel de simple précision.
frem 072h remainder of two floats Cette instruction permet de demander le restant d'une division de nombre réel de simple précision.
freturn 0AEh return from method with float result Cette instruction permet de retourner d'une méthode avec un résultat réel de simple précision.
fstore 038h store float in local variable Cette instruction permet d'entreposer une nombre réel de simple précision dans une variable locale.
fstore_0 043h store float in local variable 0 Cette instruction permet d'entreposer une nombre réel de simple précision dans la variable locale 0.
fstore_1 044h store float in local variable 1 Cette instruction permet d'entreposer une nombre réel de simple précision dans la variable locale 1.
fstore_2 045h store float in local variable 2 Cette instruction permet d'entreposer une nombre réel de simple précision dans la variable locale 2.
fstore_3 046h store float in local variable 3 Cette instruction permet d'entreposer une nombre réel de simple précision dans la variable locale 3.
fsub 066h subtract two floats Cette instruction permet de soustraire deux nombres réel de simple précision.
getfield 0B4h get value of object field Cette instruction permet de demander la valeur d'un champ d'objet.
getstatic 0B2h get value of static field Cette instruction permet de demander la valeur d'un champ statique.
goto 0A7h branch to address Cette instruction permet d'effectuer un branchement à une adresse.
goto_w 0C8h branch to address using wide offset Cette instruction permet d'effectuer un branchement relatif à une adresse
i2b 091h convert integer to byte Cette instruction permet de convertir un nombre entier en octet
i2c 092h convert integer to character Cette instruction permet de convertir un nombre entier en caractère.
i2d 087h convert integer to double Cette instruction permet de convertir un nombre entier en nombre réel de double précision.
i2 086h convert integer to float Cette instruction permet de convertir un nombre entier en nombre réel de simple précision.
i2l 085h convert integer to long integer Cette instruction permet de convertir un nombre entier en nombre entier long
i2s 093h convert integer to short integer Cette instruction permet de convertir un nombre entier en nombre entier court
iadd 060h add two integers Cette instruction permet d'additionner deux nombres entiers
iaload 02Eh retrieve integer from array Cette instruction permet de demander un entier d'un tableau.
iand 07Eh integer bitwise and Cette instruction permet d'effectuer un «Et binaire» sur entier.
iastore 04Fh store in integer array Cette instruction permet de prendre un entier de la pile et de l'entreposer dans un tableau.
iconst_0 003h push the integer constant 0 Cette instruction permet d'empiler la valeur 0 en tant que nombre entier
iconst_1 004h push the integer constant 1 Cette instruction permet d'empiler la valeur 1 en tant que nombre entier
iconst_2 005h push the integer constant 2 Cette instruction permet d'empiler la valeur 2 en tant que nombre entier
iconst_3 006h push the integer constant 3 Cette instruction permet d'empiler la valeur 3 en tant que nombre entier
iconst_4 007h push the integer constant 4 Cette instruction permet d'empiler la valeur 4 en tant que nombre entier
iconst_5 008h push the integer constant 5 Cette instruction permet d'empiler la valeur 5 en tant que nombre entier
iconst_m1 002h push the integer constant -1 Cette instruction permet d'empiler la valeur -1 en tant que nombre entier
idiv 06Ch divide an integer by another integer Cette instruction permet d'effectuer la division de deux nombres entiers
if_acmpeq 0A5h jump if two object references are equal Cette instruction permet d'effectuer un branchement si une condition d'égale se produit.
if_acmpne 0A6h jump if two object references are not equal Cette instruction permet d'effectuer un branchement si une condition de différent se produit.
if_icmpeq 09Fh jump if two integers are equal Cette instruction permet d'effectuer un branchement si deux nombres entiers sont égale
if_icmpge 0A2h jump if one integer is greater than or equal to another Cette instruction permet d'effectuer un branchement si le nombre entier est supérieur ou égale
if_icmpgt 0A3h jump if one integer is greater than another Cette instruction permet d'effectuer un branchement si le nombre entier est supérieur
if_icmple 0A4h jump if one integer is less than or equal to another Cette instruction permet d'effectuer un branchement si le nombre entier est inférieur ou égale
if_icmplt 0A1h jump if one integer is less than another Cette instruction permet d'effectuer un branchement si le nombre entier est inférieur
if_icmpne 0A0h jump if two integers are not equal Cette instruction permet d'effectuer un branchement si deux nombres entiers sont différents
ifeq 099h jump if zero Cette instruction permet d'effectuer un branchement si la condition est à zéro
ifge 09Ch jump if greater than or equal to zero Cette instruction permet d'effectuer un branchement si supérieur ou égale à zéro
ifgt 09Dh jump if greater than zero Cette instruction permet d'effectuer un branchement si supérieur à zéro
ifle 09Eh jump if less than or equal to zero Cette instruction permet d'effectuer un branchement si inférieur ou égale à zéro
iflt 09Bh jump if less than zero Cette instruction permet d'effectuer un branchement si inférieur à zéro
ifne 09Ah jump if nonzero Cette instruction permet d'effectuer un branchement si différent de zéro
ifnonnull 0C7h jump if non-null Cette instruction permet d'effectuer un branchement si la condition est non nulle.
ifnull 0C6h jump if null Cette instruction permet d'effectuer un branchement si la condition est nulle
iinc 084h increment integer in local variable Cette instruction permet d'incrémenter le nombre entier de la variable local
iload 015h retrieve integer from local variable Cette instruction permet de rechercher un nombre entier de la variable local
iload_0 1Ah push integer from local variable 0 Cette instruction permet d'empiler un entier de la variable local 0
iload_1 1Bh push integer from local variable 1 Cette instruction permet d'empiler un entier de la variable local 1
iload_2 1Ch push integer from local variable 2 Cette instruction permet d'empiler un entier de la variable local 2
iload_3 1Dh push integer from local variable 3 Cette instruction permet d'empiler un entier de la variable local 3
imped1 0FEh reserved opcode Cette instruction est un code réservé
imped2 0FFh reserved opcode Cette instruction est un code réservé
imul 068h multiply two integers Cette instruction permet d'effectuer une multiplication de deux entiers.
ineg 074h negate an integer Cette instruction permet d'effectuer une négation de deux nombres entiers.
instanceof 0C1h test class of object Cette instruction permet de tester les classes de l'objet
invokeinterface 0B9h invoke an interface method Cette instruction permet d'appeler un méthode de l'interface
invokespecial 0B7h invoke method belonging to a specific class Cette instruction permet d'appeler une méthode appartenant à une classe spécifique.
invokestatic 0B8h invoke a class (static) method Cette instruction permet d'appeler une méthode de classe statique.
invokevirtual 0B6h call an instance method Cette instruction permet d'appeler une méthode d'instance.
ior 080h integer bitwise or Cette instruction permet d'appliquer un «Ou binaire» sur un nombre entier.
irem 070h remainder of two integers Cette instruction permet d'obtenir le restant d'une division de deux nombres entiers.
ireturn 0ACh return from method with integer result Cette instruction permet de retourner la méthode avec un résultat d'entier.
ishl 078h integer shift left Cette instruction permet le décalage vers la gauche de bits d'un nombre entier
ishr 07Ah integer arithmetic shift right Cette instruction permet le décalage vers la droite de bits d'un nombre entier
istore 036h store integer in local variable Cette instruction permet d'entreposer un nombre entier dans la variable local
istore_0 03Ch store integer in local variable 0 Cette instruction permet d'entreposer un nombre entier dans la variable local 0
istore_1 03Dh store integer in local variable 1 Cette instruction permet d'entreposer un nombre entier dans la variable local 1
istore_2 03Eh store integer in local variable 2 Cette instruction permet d'entreposer un nombre entier dans la variable local 2
istore_3 03Fh store integer in local variable 3 Cette instruction permet d'entreposer un nombre entier dans la variable local 3
isub 064h subtract two integers Cette instruction permet de soustraire deux nombres entiers
iushr 07Ch integer logical shift right Cette instruction permet d'effectuer un décalage logique des bits d'un entier vers la droite.
ixor 082h integer bitwise exclusive or Cette instruction permet d'effectuer un «Ou exclusif binaire» sur un nombre entier.
jsr 0A8h jump to subroutine Cette instruction permet d'effectuer un branchement vers la sous-routine spécifié
jsr_w 0C9h jump to subroutine using wide offset Cette instruction permet d'effectuer un branchement vers la sous-routine avec un adresse relatif
l2d 08Ah convert long to double Cette instruction permet d'effectuer la conversion d'un nombre entier long en nombre réel de double précision.
l2f 089h convert long to float Cette instruction permet d'effectuer la conversion d'un nombre entier long en nombre réel de simple précision.
l2i 088h long to integer conversion Cette instruction permet d'effectuer la conversion d'un nombre entier long en nombre entier
ladd 061h add two long integers Cette instruction permet d'effectuer l'addition de deux nombres entiers long
laload 02Fh retrieve long integer from array Cette instruction permet de demander un nombre entier long d'un tableau.
land 07Fh long integer bitwise and Cette instruction permet d'effectuer un «Et binaire» sur un nombre entier long.
lastore 050h store in long integer array Cette instruction permet d'entreposer un tableau d'entier long.
lcmp 094h long integer comparison Cette instruction permet d'effectuer une comparaison de deux nombres entiers long
lconst_0 009h push the long integer 0 Cette instruction permet d'empiler la valeur 0 de format entier long
lconst_1 00Ah push the long integer 1 Cette instruction permet d'empiler la valeur 1 de format entier long
ldc 012h push single-word constant onto stack Cette instruction permet d'empiler une constante de mot dans la pile.
ldc_w 013h push single-word constant onto stack (wide index) Cette instruction permet d'empiler une constante de mot dans la pile.
ldc2_w 014h push two-word constant onto stack Cette instruction permet d'empiler deux constantes de mot dans la pile.
ldiv 06Dh divide a long integer Cette instruction permet d'effectuer la division d'un nombre entier long
lload 016h retrieve long from local variable Cette instruction permet de demander un nombre entier long d'une variable locale.
lload_0 01Eh retrieve long integer from local variables 0 and 1 Cette instruction permet de demander un nombre entier long de la variable locale 0 et 1.
lload_1 01Fh retrieve long integer from local variables 1 and 2 Cette instruction permet de demander un nombre entier long de la variable locale 1 et 2.
lload_2 020h retrieve long integer from local variables 2 and 3 Cette instruction permet de demander un nombre entier long de la variable locale 2 et 3.
lload_3 021h retrieve long integer from local variables 3 and 4 Cette instruction permet de demander un nombre entier long de la variable locale 3 et 4.
lmul 069h multiply two longs Cette instruction permet de multiplier deux nombre entier long.
lneg 075h negate a long Cette instruction permet d'effectuer la négation d'un nombre long.
lookupswitch 0ABh match key in table and jump Cette instruction permet de faire correspondre une clef dans la table et effectue un branchement.
lor 081h long integer bitwise or Cette instruction permet d'effectuer une opération de ou binaire sur le nombre entier long.
lrem 071h modulus of two longs Cette instruction permet d'effectuer le restant d'une division sur deux nombres entiers long.
lreturn 0ADh return from method with long result Cette instruction permet de demander la méthode avec le résultat d'un entier long.
lshl 079h long integer shift left Cette instruction permet d'effectuer un décalage vers la gauche d'un nombre entier long.
lshr 07Bh long integer arithmetic shift right Cette instruction permet d'effectuer un décalage vers la droite d'un nombre entier long.
lstore 037h store long integer in local variable Cette instruction permet d'entreposer un entier long dans une variable locale.
lstore_0 03Fh store long in local variables 0 and 1 Cette instruction permet d'entreposer un entier long dans la variable locale 0 et 1.
lstore_1 040h store long in local variables 1 and 2 Cette instruction permet d'entreposer un entier long dans la variable locale 1 et 2.
lstore_2 041h store long in local variables 2 and 3 Cette instruction permet d'entreposer un entier long dans la variable locale 2 et 3.
lstore_3 042h store long in local variables 3 and 4 Cette instruction permet d'entreposer un entier long dans la variable locale 3 et 4.
lsub 065h subtract two longs Cette instruction permet de soustraire deux nombres entiers long
lushr 07Dh long integer logical shift right Cette instruction permet d'effectuer le décalage logique vers la droite d'un entier long.
lxor 083h long integer bitwise exclusive or Cette instruction permet d'effectuer un «Ou exclusif binaire» sur entier long.
monitorenter 0C2h enter synchronized region of code Cette instruction permet d'entrer en synchronisation une région de code.
monitorexit 0C3h leave synchronized region of code Cette instruction permet de laisser une synchronisation d'une région de code.
multianewarray 0C5h allocate multi-dimensional array Cette instruction permet d'allouer un tableau multi-dimensionnel.
new 0BBh create an object Cette instruction permet de créer un objet
newarray 0BCh allocate new array for numbers or booleans Cette instruction permet d'allouer un nombre tableau pour des nombres ou des booléennes.
nop 000h do nothing Cette instruction permet de ne rien faire.
pop 057h discard top word on stack Cette instruction permet de dépile un mot de la pile.
pop2 058h discard top two words on stack Cette instruction permet de dépiler deux nombres entiers de la pile
putfield 0B5h set value of object field Cette instruction permet de fixer la valeur d'un champ d'objet.
putstatic 0B3h set value of static field Cette instruction permet de fixer la valeur d'un champ statique.
ret 0A9h return from subroutine Cette instruction permet de retourner d'une sous-routine.
return 0B1h return from method Cette instruction permet de retourner de la méthode.
saload 035h retrieve short from array Cette instruction permet de demander un entier court d'un tableau.
sastore 056h store in short array Cette instruction permet d'entreposer un tableau d'entier court.
sipush 011h push two-byte signed integer Cette instruction permet d'empiler deux entiers courts.
swap 05Fh swap top two stack words Cette instruction permet d'échange les deux mots supérieur de la pile.
tableswitch 0AAh jump according to a table Cette instruction permet d'effectuer un branchement en fonction d'une table.
wide 0C4h next instruction uses 16-bit index Cette instruction permet d'utiliser le prochain instruction avec un index 16 bits.


Dernière mise à jour : Mardi, le 1 novembre 2016