Section courante

A propos

Section administrative du site

Voici la liste des instructions du CIL :

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