Voici la liste des instructions du MSIL :
Opcode | Instruction | Description |
---|---|---|
58h | add | Cette instruction permet d'ajouter deux valeurs et de renvoyer une nouvelle valeur. |
D6h | add.ovf | Cette instruction permet d'ajouter des valeurs entières signées avec contrôle de débordement. |
D7h | add.ovf.un | Cette instruction permet d'ajouter des valeurs entières non signées avec contrôle de débordement. |
5Fh | and | Cette instruction permet d'effectuer un ET au niveau du bit de deux valeurs intégrales et de envoyer une valeur intégrale. |
FEh 00h | arglist | Cette instruction permet de retourner le descripteur de liste de paramètres pour la méthode actuelle. |
3Bh | beq <int32 (target)> | Cette instruction permet de se brancher vers la cible si égale. |
2Eh | beq.s<int8 (target)> | Cette instruction permet de se brancher à la cible si égale, format court. |
3Ch | bge <int32 (target)> | Cette instruction permet de se brancher à la cible si supérieure ou égale à. |
2Fh | bge.s <int8 (target)> | Cette instruction permet de se brancher à la cible si supérieure ou égale à, format court. |
41h | bge.un <int32 (target)> | Cette instruction permet de se brancher vers la cible si supérieure ou égale à (non signé ou non ordonné). |
34h | bge.un.s <int8 (target)> | Cette instruction permet de se brancher à la cible si supérieure ou égale à (non signé ou non ordonné), format court. |
3Dh | bgt <int32 (target)> | Cette instruction permet de se brancher à la cible si supérieure à. |
30h | bgt.s <int8 (target)> | Cette instruction permet de se brancher à la cible si supérieure à, format court. |
42h | bgt.un <int32 (target)> | Cette instruction permet de se brancher à la cible si supérieure à (non signée ou non ordonnée). |
35h | bgt.un.s <int8 (target)> | Cette instruction permet de se brancher à la cible si supérieure à (non signée ou non ordonnée), format abrégée. |
3Eh | ble <int32 (target)> | Cette instruction permet de se brancher à cibler si inférieure ou égale à. |
31h | ble.s <int8 (target)> | Cette instruction permet de se brancher à la cible si inférieure ou égale à, format court. |
43h | ble.un <int32 (target)> | Cette instruction permet de se brancher à la cible si inférieure ou égale à (non signé ou non ordonné). |
36h | ble.un.s <int8 (target)> | Cette instruction permet de se brancher à la cible si inférieure ou égale à (non signé ou non ordonné), format court. |
3Fh | blt <int32 (target)> | Cette instruction permet de se brancher à la cible si inférieure à. |
32h | blt.s <int8 (target)> | Cette instruction permet de se brancher à cibler si inférieure à, format court. |
44h | blt.un <int32 (target)> | Cette instruction permet de se brancher à la cible si inférieure à (non signée ou non ordonnée). |
37h | blt.un.s <int8 (target)> | Cette instruction permet de brancher à la cible si inférieure à (non signée ou non ordonnée), format court. |
40h | bne.un <int32 (target)> | Cette instruction permet de se brancher à la cible si inégale ou non ordonnée. |
33h | bne.un.s <int8 (target)> | Cette instruction permet de se brancher à la cible si inégale ou non ordonnée, format court. |
8Ch | box <typeTok> | Cette instruction permet de convertir une valeur boxable en sa format box |
38h | br <int32 (target)> | Cette instruction permet d'effectuer un branchement à la cible. |
2Bh | br.s <int8 (target)> | Cette instruction permet d'effectuer un branchement à la cible, format court. |
01h | break | Cette instruction permet d'informer un débogueur qu'un point d'arrêt a été atteint. |
39h | brfalse <int32 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est zéro (faux). |
2Ch | brfalse.s <int8 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est zéro (faux), format court. |
3Ah | brinst <int32 (target)> | Cette instruction permet d'effectuer un branchement sur la cible si la valeur est une référence d'objet non nulle (alias pour brtrue). |
2Dh | brinst.s <int8 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est une référence d'objet non nulle, format court (alias pour brtrue.s). |
39h | brnull <int32 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est nulle (alias pour brfalse). |
2Ch | brnull <int8 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est nulle (alias pour brfalse.s), format court. |
3Ah | brtrue <int32 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est différente de zéro (vrai). |
2Dh | brtrue.s <int8 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est différente de zéro (vrai), format court. |
39h | brzero<int32 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est zéro (alias pour brfalse). |
2Ch | brzero<int8 (target)> | Cette instruction permet d'effectuer un branchement vers la cible si la valeur est zéro (alias pour brfalse.s), format court. |
28h | call <method> | Cette instruction permet d'appeler une méthode. |
29h | calli <callsitedescr> | Cette instruction permet d'appeler une méthode indiquée sur la pile avec des paramètres décrits par callsitedescr. |
6Fh | callvirt <method> | Cette instruction permet d'appeler une méthode associée à un objet. |
74h | castclass <class> | Cette instruction permet de castrer l'objet à classe. |
FEh 01h | ceq | Cette instruction permet d'empiler 1 (de type int32) si value1 est égal à value2, sinon empile 0. |
FEh 02h | cgt | Cette instruction permet d'empiler 1 (de type int32) si value1 > value2, sinon empile 0. |
FEh 03h | cgt.un | Cette instruction permet d'empiler 1 (de type int32) si value1 > value2, non signé ou non ordonné, sinon empile 0. |
C3h | ckfinite | Cette instruction permet de lancer ArithmeticException si la valeur n'est pas un nombre fini. |
FEh 04h | clt | Cette instruction permet d'empiler 1 (de type int32) si value1 < value2, sinon empile 0. |
FEh 05h | clt.un | Cette instruction permet d'empiler 1 (de type int32) si value1 < value2, non signé ou non ordonné, sinon empiler 0. |
FEh 16h | contrainte. <thisType> [préfixe] | Cette instruction permet d'appeler une méthode virtuelle sur un type contraint au type T. |
D3h | conv.i | Cette instruction permet de convertir en int natif, en empilant int natif sur la pile. |
67h | conv.i1 | Cette instruction permet de convertir en int8, en empilant un int32 sur la pile. |
68h | conv.i2 | Cette instruction permet de convertir en int16, en empilant int32 sur la pile. |
69h | conv.i4 | Cette instruction permet de convertir en int32, en empilant int32 sur la pile. |
6Ah | conv.i8 | Cette instruction permet de convertir en int64, en empilant int64 sur la pile. |
D4h | conv.ovf.i | Cette instruction permet de convertir en un int natif (sur la pile en tant que int natif) et de lancer une exception en cas de débordement. |
8Ah | conv.ovf.i.un | Cette instruction permet de convertir en non signé en un int natif (sur la pile en tant que int natif) et de lancer une exception en cas de débordement. |
B3h | conv.ovf.i1 | Cette instruction permet de convertir en un int8 (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
82h | conv.ovf.i1.un | Cette instruction permet de convertir un int8 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
B5h | conv.ovf.i2 | Cette instruction permet de convertir en un int16 (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
83h | conv.ovf.i2.un | Cette instruction permet de convertir en int16 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
B7h | conv.ovf.i4 | Cette instruction permet de convertir en un int32 (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
84h | conv.ovf.i4.un | Cette instruction permet de convertir en un int32 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
B9h | conv.ovf.i8 | Cette instruction permet de convertir en un int64 (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
85h | conv.ovf.i8.un | Cette instruction permet de convertir en un int64 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
D5h | conv.ovf.u | Cette instruction permet de convertir en un int natif non signé (sur la pile en tant que int natif) et de lancer une exception en cas de débordement. |
8Bh | conv.ovf.u.un | Cette instruction permet de convertir un unsigned en un int natif non signé (sur la pile en tant que int natif) et de lever une exception en cas de débordement. |
B4h | conv.ovf.u1 | Cette instruction permet de convertir en un int8 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
86h | conv.ovf.u1.un | Cette instruction permet de convertir un unsigned en un int8 non signé (sur la pile en tant que int32) et de lever une exception en cas de débordement. |
B6h | conv.ovf.u2 | Cette instruction permet de convertir en un int16 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
87h | conv.ovf.u2.un | Cette instruction permet de convertir un unsigned en un int16 non signé (sur la pile en tant que int32) et de lever une exception en cas de débordement. |
B8h | conv.ovf.u4 | Cette instruction permet de convertir en un int32 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
88h | conv.ovf.u4.un | Cette instruction permet de convertir un unsigned en un int32 non signé (sur la pile en tant que int32) et de lever une exception en cas de débordement. |
BAh | conv.ovf.u8 | Cette instruction permet de convertir en un int64 non signé (sur la pile en tant que int32) et de lancer une exception en cas de débordement. |
89h | conv.ovf.u8.un | Cette instruction permet de convertir un unsigned en un int64 non signé (sur la pile en tant que int32) et de lever une exception en cas de débordement. |
76h | conv.r.un | Cette instruction permet de convertir un entier non signé en virgule flottante, en empilant F sur la pile. |
6Bh | conv.r4 | Cette instruction permet de convertir en float32, en empilant F dans la pile. |
6Ch | conv.r8 | Cette instruction permet de convertir en float64, en empilant F dans la pile. |
E0h | conv.u | Cette instruction permet de convertir en int natif non signé, en empilant un int natif dans la pile. |
D2h | conv.u1 | Cette instruction permet de convertir en int8 non signé, en empilant int32 dans la pile. |
D1h | conv.u2 | Cette instruction permet de convertir en int16 non signé, en empilant un int32 dans la pile. |
6Dh | conv.u4 | Cette instruction permet de convertir en int32 non signé, en empilant un int32 dans la pile. |
6Eh | conv.u8 | Cette instruction permet de convertir en int64 non signé, en empilant int64 sur la pile. |
FEh 17h | cpblk | Cette instruction permet de copier les données de mémoire en mémoire. |
70h | cpobj <typeTok> | Cette instruction permet de copier un type de valeur de src vers dest. |
5Bh | div | Cette instruction permet de diviser deux valeurs pour renvoyer un résultat quotient ou à virgule flottante. |
5Ch | div.un | Cette instruction permet de diviser deux valeurs, non signées, renvoyant un quotient. |
25h | dup | Cette instruction permet de dupliquer la valeur en haut de la pile. |
DCh | endfault | Cette instruction permet d'indiquer une clause de fin de faute d'un bloc d'exception. |
FEh 11h | endfilter | Cette instruction permet de terminer une clause de filtre de gestion des exceptions. |
DCh | endfinally | Cette instruction permet d'indiquer une clause de fin d'un bloc d'exception. |
4Ch | idind.u8 | Cette instruction permet d'indiquer une valeur de chargement indirect de type unsigned int64 en tant que int64 sur la pile (alias pour ldind.i8). |
FEh 18h | initblk | Cette instruction permet de définir tous les octets d'un bloc de mémoire sur une valeur d'octet donnée. |
FEh 15h | initobj <typeTok> | Cette instruction permet d'initialiser la valeur à l'adresse de destination. |
75h | isinst <class> | Cette instruction permet de tester si obj est une instance de classe, renvoyant null ou une instance de cette classe ou interface. |
27h | jmp <method> | Cette instruction permet de quitter la méthode actuelle et de passer à la méthode spécifiée. |
FEh 09h | ldarg <uint16 (num)> | Cette instruction permet d'effectuer le chargement de paramètre numéroté num sur la pile. |
02h | ldarg.0 | Cette instruction permet de charger le paramètre 0 sur la pile. |
03h | ldarg.1 | Cette instruction permet de charger le paramètre 1 sur la pile. |
04h | ldarg.2 | Cette instruction permet de charger le paramètre 2 sur la pile. |
05h | ldarg.3 | Cette instruction permet de charger le paramètre 3 sur la pile. |
0Eh | ldarg.s <uin8 (num)> | Cette instruction permet de charger le paramètre numéroté num sur la pile, format court. |
FEh 0Ah | ldarga <uint16 (argNum)> | Cette instruction permet de récupérer l'adresse du paramètre argNum. |
0Fh | ldarga.s <uint8 (argNum)> | Cette instruction permet de récupérer l'adresse du paramètre argNum, format court. |
20h | ldc.i4 <int32 (num)> | Cette instruction permet d'empiler num de type int32 sur la pile en tant que int32. |
16h | ldc.i4.0 | Cette instruction permet d'empiler 0 sur la pile en tant que int32. |
17h | ldc.i4.1 | Cette instruction permet d'empiler 1 sur la pile en tant que int32. |
18h | ldc.i4.2 | Cette instruction permet d'empiler 2 sur la pile en tant que int32. |
19h | ldc.i4.3 | Cette instruction permet d'empiler 3 sur la pile comme int32. |
1Ah | ldc.i4.4 | Cette instruction permet d'empiler 4 sur la pile en tant que int32. |
1Bh | ldc.i4.5 | Cette instruction permet d'empiler 5 sur la pile en tant que int32. |
1Ch | ldc.i4.6 | Cette instruction permet d'empiler 6 sur la pile en tant que int32. |
1Dh | ldc.i4.7 | Cette instruction permet d'empiler 7 sur la pile en tant que int32. |
1Eh | ldc.i4.8 | Cette instruction permet d'empiler 8 sur la pile en tant que int32. |
15h | ldc.i4.m1 | Cette instruction permet d'empiler -1 dans la pile en tant que int32. |
15h | ldc.i4.M1 | Cette instruction permet d'empiler -1 de type int32 sur la pile en tant que int32 (alias pour ldc.i4.m1). |
1Fh | ldc.i4.s <int8 (num)> | Cette instruction permet d'empiler num sur la pile en tant que int32, format court. |
21h | ldc.i8 <int64 (num)> | Cette instruction permet d'empiler num de type int64 sur la pile en tant que int64. |
22h | ldc.r4 <float32 (num)> | Cette instruction permet d'empiler num de type float32 sur la pile en tant que F. |
23h | ldc.r8 <float64 (num)> | Cette instruction permet de pousser num de type float64 sur la pile en tant que F. |
A3h | ldelem <typeTok> | Cette instruction permet de charger l'élément à l'index en haut de la pile. |
97h | ldelem.i | Cette instruction permet de charger l'élément de type int natif à l'index en haut de la pile en tant que int natif. |
90h | ldelem.i1 | Cette instruction permet de charger l'élément de type int8 à l'index en haut de la pile en tant que int32. |
92h | ldelem.i2 | Cette instruction permet de charger l'élément de type int16 à l'index en haut de la pile en tant que int32. |
94h | ldelem.i4 | Cette instruction permet de charger l'élément de type int32 à l'index en haut de la pile en tant que int32. |
96h | ldelem.i8 | Cette instruction permet de charger l'élément de type int64 à l'index en haut de la pile en tant que int64. |
98h | ldelem.r4 | Cette instruction permet de charger l'élément de type float32 à l'index en haut de la pile en tant que F. |
99h | ldelem.r8 | Cette instruction permet de charger l'élément de type float64 à l'index en haut de la pile en tant que F. |
9Ah | ldelem.ref | Cette instruction permet de charger l'élément à l'index en haut de la pile en tant que O. Le type du O est le même que le type d'élément du tableau poussé sur la pile CIL. |
91h | ldelem.u1 | Cette instruction permet de charger l'élément de type int8 unsigned à l'index en haut de la pile en tant que int32. |
93h | ldelem.u2 | Cette instruction permet de charger l'élément de type int16 unsigned à l'index en haut de la pile en tant que int32. |
95h | ldelem.u4 | Cette instruction permet de charger l'élément de type int32 unsigned à l'index en haut de la pile en tant que int32. |
96h | ldelem.u8 | Cette instruction permet de charger l'élément de type int64 unsigned à l'index en haut de la pile en tant que int64 (alias pour ldelem.i8). |
8Fh | ldelema <class> | Cette instruction permet de charger l'adresse de l'élément à l'index en haut de la pile. |
7Bh | ldfld <field> | Cette instruction permet d'empiler la valeur du champ de l'objet (ou du type de valeur) obj, sur la pile. |
7Ch | ldflda <field> | Cette instruction permet d'empiler l'adresse du champ de l'objet obj sur la pile. |
FEh 06h | ldftn <method> | Cette instruction permet d'empiler un pointeur vers une méthode référencée par méthode, sur la pile. |
4Dh | ldind.i | Cette instruction permet d'indiquer une valeur à charger indirectement de type native int en tant que native int sur la pile. |
46h | ldind.i1 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int8 comme int32 sur la pile. |
48h | ldind.i2 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int16 comme int32 sur la pile. |
4Ah | ldind.i4 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int32 en tant que int32 sur la pile. |
4Ch | ldind.i8 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int64 en tant que int64 sur la pile. |
4Eh | ldind.r4 | Cette instruction permet d'indiquer une valeur à charger indirectement de type float32 en tant que F sur la pile. |
4Fh | ldind.r8 | Cette instruction permet d'indiquer une valeur à charger indirectement de type float64 en tant que F sur la pile. |
50h | ldind.ref | Cette instruction permet d'indiquer une valeur à charger indirectement de type object ref en tant que O sur la pile. |
47h | ldind.u1 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int8 non signé en tant que int32 sur la pile |
49h | ldind.u2 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int16 non signé comme int32 sur la pile. |
4Bh | ldind.u4 | Cette instruction permet d'indiquer une valeur à charger indirectement de type int32 non signé en tant que int32 sur la pile. |
8Eh | ldlen | Cette instruction permet d'empiler la longueur (de type int non signé natif) du tableau sur la pile. |
FEh 0Ch | ldloc <uint16 (indx)> | Cette instruction permet de charger la variable locale de l'index indx sur la pile. |
06h | ldloc.0 | Cette instruction permet de charger la variable locale 0 sur la pile. |
07h | ldloc.1 | Cette instruction permet de charger la variable locale 1 sur la pile. |
08h | ldloc.2 | Cette instruction permet de charger la variable locale 2 sur la pile. |
09h | ldloc.3 | Cette instruction permet de charger la variable locale 3 sur la pile. |
11h | ldloc.s <uint8 (indx)> | Cette instruction permet de charger la variable locale de l'index indx sur la pile, format court. |
FEh 0Dh | ldloca <uint16 (indx)> | Cette instruction permet de charger l'adresse de la variable locale avec l'index indx. |
12h | ldloca.s <uint8 (indx)> | Cette instruction permet de charger l'adresse de la variable locale avec index indx, format court. |
14h | ldnull | Cette instruction permet d'empiler une référence nulle sur la pile. |
71h | ldobj <typeTok> | Cette instruction permet de copier la valeur entreposée à l'adresse src dans la pile. |
7Eh | ldsfld <field> | Cette instruction permet d'empiler la valeur du champ sur la pile. |
7Fh | ldsflda <field> | Cette instruction permet d'empiler l'adresse du champ statique, champ, sur la pile. |
72h | ldstr <string> | Cette instruction permet d'empiler un objet chaîne de caractères pour la chaîne de caractères littérale. |
D0h | ldtoken <token> | Cette instruction permet de convertir le jeton de métadonnées en sa représentation d'exécution. |
FEh 07h | ldvirtftn <method> | Cette instruction permet d'empiler l'adresse de la méthode de méthode virtuelle sur la pile. |
DDh | leave <int32 (target)> | Cette instruction permet de quitter une région protégée de code. |
DEh | leave.s <int8 (target)> | Cette instruction permet de quitter une région protégée de code, format court. |
FEh 0Fh | localloc | Cette instruction permet d'allouer de l'espace à partir du bassin de mémoire local. |
C6h | mkrefany <class> | Cette instruction permet d'empiler une référence typée à ptr de type class sur la pile. |
5Ah | mul | Cette instruction permet de multiplier les valeurs. |
D8h | mul.ovf.<type> | Cette instruction permet de multiplier les valeurs entières signées. Le résultat signé doit tenir dans la même taille. |
D9h | mul.ovf.un | Cette instruction permet de multiplier les valeurs entières non signées. Le résultat non signé doit tenir dans la même taille. |
65h | neg | Cette instruction permet d'indiquer une valeur négative. |
8Dh | newarr <etype> | Cette instruction permet de créer un nouveau tableau avec des éléments de type etype. |
73h | newobj <ctor> | Cette instruction permet d'allouer un objet ou un type de valeur non initialisé et appelez ctor. |
FEh 19h | no. { typecheck, rangecheck, nullcheck } [préfixe] | Cette instruction permet d'indiquer le(s) contrôle(s) d'erreur spécifié(s) normalement effectué(s) dans le cadre de l'exécution de l'instruction suivante pouvant/devant être ignorés. |
00h | nop | Cette instruction ne fait rien. |
66h | not | Cette instruction permet d'indiquer le complément au niveau du bit. |
60h | or | Cette instruction permet d'effectuer un OU au niveau du bit de deux valeurs entières, renvoie un entier. |
26h | pop | Cette instruction permet d'extraire la valeur de la pile. |
FEh 1Eh | readonly. [préfixe] | Cette instruction permet d'indiquer que l'opération d'adresse de tableau suivante n'effectue aucune vérification de type au moment de l'exécution et qu'elle renvoie un pointeur géré à mutabilité contrôlée. |
FEh 1Dh | refanytype | Cette instruction permet d'empiler un jeton de type entreposé dans une référence typée. |
C2h | refanyval <type> | Cette instruction permet d'empiler l'adresse entreposée dans une référence typée. |
5Dh | rem | Cette instruction permet d'indiquer le restant lors de la division d'une valeur par une autre. |
5Eh | rem.un | Cette instruction permet d'indiquer le restant lors de la division d'une valeur non signée par une autre. |
2Ah | ret | Cette instruction permet d'effectuer le retour de la méthode, éventuellement avec une valeur. |
FEh 1Ah | rethrow | Cette instruction permet de relancer l'exception actuelle. |
62h | shl | Cette instruction permet d'effectuer un décalage d'un entier vers la gauche (décalage en zéros), renvoie un entier. |
63h | shr | Cette instruction permet d'effectuer un décalage d'un entier vers la droite (décalage du signe), renvoie un entier. |
64h | shr.un | Cette instruction permet d'effectuer le décalage d'un entier vers la droite (décalage à zéro), renvoie un entier. |
FEh 1Ch | sizeof <typeTok> | Cette instruction permet d'empiler la taille, en octets, d'un type en tant que int32 non signé. |
FEh 0Bh | starg <uint16 (num)> | Cette instruction permet d'entreposer la valeur dans le paramètre numéroté num. |
10h | starg.s <uint8 (num)> | Cette instruction permet d'entreposer la valeur dans le paramètre numéroté num, format court. |
A4h | stelem <typeTok> | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur sur la pile. |
9Bh | stelem.i | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur i sur la pile. |
9Ch | stelem.i1 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur int8 sur la pile. |
9Dh | stelem.i2 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur int16 sur la pile. |
9Eh | stelem.i4 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur int32 sur la pile. |
9Fh | stelem.i8 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur int64 sur la pile. |
A0h | stelem.r4 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur float32 sur la pile. |
A1h | stelem.r8 | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur float64 sur la pile. |
A2h | stelem.ref | Cette instruction permet de remplacer l'élément du tableau à l'index par la valeur ref sur la pile. |
7Dh | stfld <field> | Cette instruction permet de remplacer la valeur du champ de l'objet obj par value. |
DFh | stind.i | Cette instruction permet d'entreposer la valeur de type native int en mémoire à l'adresse. |
52h | stind.i1 | Cette instruction permet d'entreposer la valeur de type int8 en mémoire à l'adresse. |
53h | stind.i2 | Cette instruction permet d'entreposer la valeur de type int16 en mémoire à l'adresse. |
54h | stind.i4 | Cette instruction permet d'entreposer la valeur de type int32 en mémoire à l'adresse. |
55h | stind.i8 | Cette instruction permet d'entreposer la valeur de type int64 en mémoire à l'adresse. |
56h | stind.r4 | Cette instruction permet d'entreposer la valeur de type float32 en mémoire à l'adresse. |
57h | stind.r8 | Cette instruction permet d'entreposer la valeur de type float64 en mémoire à l'adresse. |
51h | stind.ref | Cette instruction permet d'entreposer la valeur de type object ref (type O) dans la mémoire à l'adresse. |
FEh 0Eh | stloc <uint16 (indx)> | Cette instruction permet de dépiler une valeur de la pile dans l'index de la variable locale. |
0Ah | stloc.0 | Cette instruction permet de dépiler une valeur de la pile dans la variable locale 0. |
0Bh | stloc.1 | Cette instruction permet de dépiler une valeur de la pile dans la variable locale 1. |
0Ch | stloc.2 | Cette instruction permet de dépiler une valeur de la pile dans la variable locale 2. |
0Dh | stloc.3 | Cette instruction permet de dépiler une valeur de la pile dans la variable locale 3. |
13h | stloc.s <uint8 (indx)> | Cette instruction permet de dépiler une valeur de la pile dans la variable locale indx, format court. |
81h | stobj <typeTok> | Cette instruction permet d'entreposer une valeur de type typeTok à une adresse. |
80h | stsfld <field> | Cette instruction permet de remplacer la valeur du champ par val. |
59h | sub | Cette instruction permet de soustraire value2 de value1, renvoyant une nouvelle valeur. |
DAh | sub.ovf | Cette instruction permet de soustraire un int natif d'un int natif. Le résultat signé doit tenir dans la même taille. |
DBh | sub.ovf.un | Cette instruction permet de soustraire un int natif non signé d'un int natif non signé. Le résultat non signé doit tenir dans la même taille. |
45h | switch <uint32, int32,int32 (t1..tN)> | Cette instruction permet d'aller à l'une des n valeurs. |
FEh 14h | tail. [préfixe] | Cette instruction permet d'indiquer l'appel suivant terminant la méthode actuelle. |
7Ah | throw | Cette instruction permet de lancer une exception. |
FEh 12h | unaligned. (alignment) [prefix] | Cette instruction permet d'indiquer que l'instruction de pointeur suivante peut être non alignée. |
79h | unbox <valuetype> | Cette instruction permet d'extraire un type de valeur de obj, en représentation en boîte. |
A5h | unbox.any <typeTok> | Cette instruction permet d'extraire un type de valeur de obj, sa représentation en boîte. |
FEh 13h | volatile. [préfixe] | Cette instruction permet d'indiquer que la référence de pointeur suivante est volatile. |
61h | xor | Cette instruction permet d'indiquer un ou exclusif au niveau du bit de valeurs entières et renvoie un entier. |
Dernière mise à jour : Samedi, le 26 juin 2021