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