Maison  >  Article  >  développement back-end  >  Collection d'instructions IL en langage intermédiaire .NET Framework

Collection d'instructions IL en langage intermédiaire .NET Framework

黄舟
黄舟original
2017-02-22 10:40:522101parcourir

IL est l'abréviation de Intermediate Language dans le framework .NET. À l'aide du compilateur fourni par le framework .NET, vous pouvez directement compiler le programme source dans un fichier .exe ou .dll. Cependant, le code du programme compilé à l'heure actuelle n'est pas du code machine qui peut être directement exécuté par le CPU, mais un. code de langue intermédiaire IL (Intermediate Language).

Nom Description
Ajouter Ajoutez les deux valeurs et poussez le résultat vers sur la pile de calcul.
Add.Ovf Ajoute deux entiers, effectue une vérification de débordement et pousse le résultat sur la pile de calcul.
Add.Ovf.Un Ajoute deux valeurs entières non signées, effectue une vérification de débordement et pousse le résultat sur la pile d'évaluation.
Et Calcule le ET au niveau du bit de deux valeurs et pousse le résultat sur la pile d'évaluation.
Arglist Renvoie un pointeur non géré vers la liste d'arguments de la méthode actuelle.
Beq Si les deux valeurs sont égales, transférez le contrôle à l'instruction cible.
Beq.S Si les deux valeurs sont égales, transférez le contrôle à l'instruction cible (forme courte).
Bge Si la première valeur est supérieure ou égale à la deuxième valeur, transférez le contrôle à l'instruction cible.
Bge.S Si la première valeur est supérieure ou égale à la deuxième valeur, transférez le contrôle à l'instruction cible (forme courte).
Bge.Un Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est supérieure à la deuxième valeur, alors le contrôle est transféré à l’instruction cible.
Bge.Un.S Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est supérieure à la deuxième valeur, alors transfère le contrôle à l’instruction cible (forme courte).
Bgt Si la première valeur est supérieure à la deuxième valeur, transférez le contrôle à l'instruction cible.
Bgt.S Si la première valeur est supérieure à la deuxième valeur, transférez le contrôle à l'instruction cible (forme courte).
Bgt.Un Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est supérieure à la deuxième valeur, alors le contrôle est transféré à l’instruction cible.
Bgt.Un.S Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est supérieure à la deuxième valeur, alors transfère le contrôle à l’instruction cible (forme courte).
Ble Si la première valeur est inférieure ou égale à la deuxième valeur, transférez le contrôle à l'instruction cible.
Ble.S Si la première valeur est inférieure ou égale à la deuxième valeur, transférez le contrôle à l'instruction cible (forme courte).
Ble.Un Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est inférieure ou égale à la deuxième valeur, alors contrôlez est transféré à l'instruction cible.
Ble.Un.S Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est inférieure ou égale à la deuxième valeur, le contrôle est ensuite transféré à l'instruction cible (forme courte).
Blt Si la première valeur est inférieure à la deuxième valeur, transférez le contrôle à l'instruction cible.
Blt.S Si la première valeur est inférieure à la deuxième valeur, transférez le contrôle à l'instruction cible (forme courte).
Blt.Un Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est inférieure à la deuxième valeur, alors le contrôle est transféré à l’instruction cible.
Blt.Un.S Lors de la comparaison de valeurs entières non signées ou de valeurs à virgule flottante non triables, si la première valeur est inférieure à la deuxième valeur, alors transfère le contrôle à l’instruction cible (forme courte).
Bne.Un Lorsque deux valeurs entières non signées ou valeurs à virgule flottante non triables ne sont pas égales, transférez le contrôle à l'instruction cible.
Bne.Un.S Lorsque deux valeurs entières non signées ou valeurs à virgule flottante non triables ne sont pas égales, transférez le contrôle à l'instruction cible (court Format).
Box Convertit une classe de valeur en une référence d'objet (type O).
Br Transfère sans condition le contrôle à l'instruction cible.
Br.S Transfère sans condition le contrôle à l'instruction cible (forme courte).
Break Envoie un signal à la construction de langage commun (CLI) pour informer le débogueur qu'un point d'arrêt a été atteint.
Brfalse Si la valeur est fausse, une référence nulle (Nothing en Visual Basic), ou zéro, transfère le contrôle à l'instruction cible.
Brfalse.S Si la valeur est fausse, une référence nulle ou zéro, transférez le contrôle à l'instruction cible.
Brtrue Si la valeur est vraie, non nulle ou non nulle, transférez le contrôle à l'instruction cible.
Brtrue.S Si la valeur est vraie, non nulle ou non nulle, transférez le contrôle à l'instruction cible (forme courte).
Call appelle la méthode indiquée par le spécificateur de méthode transmis.
Calli Invoque la méthode indiquée sur la pile de calcul (en tant que pointeur vers le point d'entrée) avec les paramètres décrits par la convention d'appel.
Callvirt Appelle une méthode à liaison tardive sur un objet et pousse la valeur de retour sur la pile de calcul.
Castclass Tente de convertir l'objet passé par référence à la classe spécifiée.
Ceq Compare deux valeurs. Si les deux valeurs sont égales, la valeur entière 1 (int32) est poussée sur la pile d'évaluation ; sinon, 0 (int32) est poussée sur la pile d'évaluation ;
Cgt Compare deux valeurs. Si la première valeur est supérieure à la deuxième valeur, la valeur entière 1 (int32) est poussée sur la pile d'évaluation, sinon 0 (int32) est poussée sur la pile d'évaluation ;
Cgt.Un Compare deux valeurs non signées ou non triables. Si la première valeur est supérieure à la deuxième valeur, la valeur entière 1 (int32) est poussée sur la pile d'évaluation, sinon 0 (int32) est poussée sur la pile d'évaluation ;
Ckfinite Lance une ArithmeticException si la valeur n'est pas un nombre fini.
Clt Compare deux valeurs. Si la première valeur est inférieure à la deuxième valeur, la valeur entière 1 (int32) est poussée sur la pile d'évaluation ; sinon, 0 (int32) est poussée sur la pile d'évaluation ;
Clt.Un Compare les valeurs non signées ou non triables valeur1 et valeur2. Si value1 est inférieur à value2, la valeur entière 1 (int32) est poussée sur la pile d'évaluation, sinon 0 (int32) est poussée sur la pile d'évaluation ;
Constrained Contraint le type sur lequel les appels de méthode virtuelle doivent être effectués.
Conv.I Convertit la valeur en haut de la pile de calcul en un entier natif.
Conv.I1 Convertit la valeur en haut de la pile de calcul en un int8, puis l'étend (remplit) en un int32.
Conv.I2 Convertit la valeur en haut de la pile de calcul en un int16, puis l'étend (remplit) en un int32.
Conv.I4 Convertissez la valeur en haut de la pile de calcul en un int32.
Conv.I8 Convertissez la valeur en haut de la pile de calcul en un int64.
Conv.Ovf.I Convertit la valeur signée en haut de la pile d'évaluation en un entier natif signé, en lançant une OverflowException en cas de débordement.
Conv.Ovf.I.Un Convertit la valeur non signée en haut de la pile d'évaluation en un entier natif signé, en lançant une OverflowException en cas de débordement.
Conv.Ovf.I1 Convertit la valeur signée en haut de la pile d'évaluation en un int8 signé et l'étend à un int32, en lançant une OverflowException en cas de débordement .
Conv.Ovf.I1.Un Convertit la valeur non signée en haut de la pile d'évaluation en un int8 signé et l'étend en un int32, et en cas de débordement Lève une exception OverflowException.
Conv.Ovf.I2 Convertit la valeur signée en haut de la pile d'évaluation en un int16 signé et l'étend à un int32, en lançant une OverflowException en cas de débordement .
Conv.Ovf.I2.Un Convertissez la valeur non signée en haut de la pile d'évaluation en un int16 signé et étendez-la à un int32, et en cas de débordement Lève une exception OverflowException.
Conv.Ovf.I4 Convertit la valeur signée en haut de la pile d'évaluation en un int32 signé, en lançant une OverflowException en cas de débordement.
Conv.Ovf.I4.Un Convertit la valeur non signée en haut de la pile d'évaluation en un int32 signé et lève une OverflowException en cas de débordement.
Conv.Ovf.I8 Convertit la valeur signée en haut de la pile d'évaluation en un int64 signé et lève une OverflowException en cas de débordement.
Conv.Ovf.I8.Un Convertit la valeur non signée en haut de la pile d'évaluation en un int64 signé, en lançant une OverflowException en cas de débordement.
Conv.Ovf.U Convertit la valeur signée en haut de la pile d'évaluation en un entier natif non signé et lève une OverflowException en cas de débordement.
Conv.Ovf.U.Un Convertit la valeur non signée en haut de la pile d'évaluation en un entier natif non signé, en lançant une OverflowException en cas de débordement.
Conv.Ovf.U1 Convertit la valeur signée en haut de la pile d'évaluation en un int8 non signé et l'étend à un int32, en lançant une OverflowException en cas de débordement .
Conv.Ovf.U1.Un Convertit la valeur non signée en haut de la pile d'évaluation en int8 non signé et l'étend à int32, déclenchant en cas de débordement OverflowException.
Conv.Ovf.U2 Convertit la valeur signée en haut de la pile d'évaluation en un int16 non signé et l'étend à un int32, en lançant une OverflowException en cas de débordement .
Conv.Ovf.U2.Un Convertit la valeur non signée en haut de la pile d'évaluation en un int16 non signé et l'étend en un int32, augmentant en cas de débordement Exception de débordement.
Conv.Ovf.U4 Convertit la valeur signée en haut de la pile d'évaluation en un int32 non signé et lève une OverflowException en cas de débordement.
Conv.Ovf.U4.Un Convertit la valeur non signée en haut de la pile d'évaluation en un int32 non signé et lève une OverflowException en cas de débordement.
Conv.Ovf.U8 Convertit la valeur signée en haut de la pile d'évaluation en int64 non signé et lève une OverflowException en cas de débordement.
Conv.Ovf.U8.Un Convertit la valeur non signée en haut de la pile d'évaluation en int64 non signé et lève une OverflowException en cas de débordement.
Conv.R.Un Convertit la valeur entière non signée en haut de la pile d'évaluation en float32.
Conv.R4 Convertit la valeur en haut de la pile de calcul en float32.
Conv.R8 Convertit la valeur en haut de la pile de calcul en float64.
Conv.U Convertit la valeur en haut de la pile de calcul en un entier natif non signé, puis l'étend en un entier natif.
Conv.U1 Convertit la valeur en haut de la pile de calcul en un int8 non signé, puis l'étend en un int32.
Conv.U2 Convertit la valeur en haut de la pile de calcul en un int16 non signé, puis l'étend en un int32.
Conv.U4 Convertit la valeur en haut de la pile de calcul en un int32 non signé, puis la développe en un int32.
Conv.U8 Convertit la valeur en haut de la pile de calcul en un int64 non signé, puis la développe en un int64.
Cpblk Copie le nombre d'octets spécifié de l'adresse source vers l'adresse de destination.
Cpobj Copie le type de valeur à l'adresse de l'objet (&, * ou type int natif) vers l'adresse de l'objet cible (&, * ou type int natif).
p Divise deux valeurs et pousse le résultat sur la pile d'évaluation sous forme de flottant (type F) ou de quotient (type int32).
p.Un Divise deux valeurs entières non signées et pousse le résultat ( int32 ) sur la pile d'évaluation.
Dup Copie la valeur actuelle la plus élevée sur la pile de calcul, puis pousse la copie sur la pile de calcul.
Endfilter Transfère le contrôle de la clause de filtre de l'exception vers le gestionnaire d'exceptions Common Language Construct (CLI).
Endfinally Transfère le contrôle de la clause d'erreur ou de finale du bloc d'exception au gestionnaire d'exceptions Common Language Construct (CLI).
Initblk Initialise le bloc de mémoire spécifié situé à une adresse spécifique à la taille et à la valeur initiale données.
Initobj Initialise chaque champ du type valeur à l'adresse spécifiée à une référence nulle ou 0 pour le type primitif approprié.
Isinst Teste si une référence d'objet (de type O) est une instance d'une classe spécifique.
Jmp Quittez la méthode actuelle et passez à la méthode spécifiée.
Ldarg Charge l'argument (référencé par la valeur d'index spécifiée) sur la pile.
Ldarg.0 Charge le paramètre d'index 0 sur la pile d'évaluation.
Ldarg.1 Charge le paramètre d'index 1 sur la pile d'évaluation.
Ldarg.2 Charge l'argument d'index 2 sur la pile d'évaluation.
Ldarg.3 Charge le paramètre d'index 3 sur la pile d'évaluation.
Ldarg.S Charge l'argument (référencé par l'index abrégé spécifié) sur la pile d'évaluation.
Ldarga Charge l'adresse du paramètre sur la pile de calcul.
Ldarga.S Charge les adresses de paramètres au format court sur la pile de calcul.
Ldc.I4 Pousse la valeur fournie de type int32 sur la pile d'évaluation en tant que int32.
Ldc.I4.0 Poussez la valeur entière 0 sur la pile de calcul en tant que int32.
Ldc.I4.1 Poussez la valeur entière 1 sur la pile d'évaluation en tant que int32.
Ldc.I4.2 Poussez la valeur entière 2 sur la pile d'évaluation en tant que int32.
Ldc.I4.3 Poussez la valeur entière 3 sur la pile d'évaluation en tant que int32.
Ldc.I4.4 Poussez la valeur entière 4 sur la pile de calcul en tant que int32.
Ldc.I4.5 Poussez la valeur entière 5 sur la pile de calcul en tant que int32.
Ldc.I4.6 Poussez la valeur entière 6 sur la pile de calcul en tant que int32.
Ldc.I4.7 Poussez la valeur entière 7 sur la pile de calcul en tant que int32.
Ldc.I4.8 Poussez la valeur entière 8 sur la pile de calcul en tant que int32.
Ldc.I4.M1 Poussez la valeur entière -1 en tant que int32 sur la pile de calcul.
Ldc.I4.S Poussez la valeur int8 fournie sur la pile de calcul sous la forme d'un int32 (forme courte).
Ldc.I8 Pousse la valeur fournie de type int64 sur la pile d'évaluation en tant que int64.
Ldc.R4 Pousse la valeur fournie de type float32 sur la pile d'évaluation en tant que type F (float).
Ldc.R8 Pousse la valeur fournie de type float64 sur la pile d'évaluation en tant que type F (float).
Ldelem Charge l'élément à l'index de tableau spécifié en haut de la pile d'évaluation, selon le type spécifié dans la directive.
Ldelem.I Charge l'élément de type native int à l'index du tableau spécifié en tant que natif int en haut de la pile d'évaluation.
Ldelem.I1 Charge l'élément de type int8 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelem.I2 Charge l'élément de type int16 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelem.I4 Charge l'élément de type int32 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelem.I8 Charge l'élément de type int64 à l'index de tableau spécifié en tant que int64 en haut de la pile d'évaluation.
Ldelem.R4 Charge l'élément de type float32 à l'index de tableau spécifié en haut de la pile d'évaluation en tant que type F (float).
Ldelem.R8 Charge l'élément de type float64 à l'index de tableau spécifié en haut de la pile d'évaluation en tant que type F (float).
Ldelem.Ref Charge l'élément contenant la référence d'objet à l'index de tableau spécifié en haut de la pile d'évaluation en tant que type O (référence d'objet).
Ldelem.U1 Charge l'élément de type unsigned int8 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelem.U2 Charge l'élément de type unsigned int16 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelem.U4 Charge l'élément de type unsigned int32 à l'index de tableau spécifié en tant que int32 en haut de la pile d'évaluation.
Ldelema Charge l'adresse de l'élément du tableau à l'index de tableau spécifié en tant que type & (un pointeur géré) en haut de la pile d'évaluation.
Ldfld Trouve la valeur du champ dans l'objet dont la référence est actuellement sur la pile de calcul.
Ldflda Trouve l'adresse d'un champ dans un objet dont la référence est actuellement sur la pile de calcul.
Ldftn Pousse un pointeur non géré (de type native int) vers du code natif qui implémente une méthode spécifique sur la pile d'évaluation.
Ldind.I Charge indirectement une valeur de type native int sur la pile de calcul en tant que natif int.
Ldind.I1 Charge indirectement une valeur de type int8 sur la pile d'évaluation en tant que int32.
Ldind.I2 Charge indirectement une valeur de type int16 sur la pile d'évaluation en tant que int32.
Ldind.I4 Charge une valeur de type int32 sur la pile d'évaluation en tant qu'indirection int32.
Ldind.I8 Charge une valeur de type int64 sur la pile d'évaluation en tant qu'indirection int64.
Ldind.R4 Charge une valeur float32 indirectement sur la pile de calcul en tant que type F (float).
Ldind.R8 Charge indirectement une valeur float64 sur la pile de calcul en tant que type F (float).
Ldind.Ref Charge une référence d'objet indirectement sur la pile d'évaluation en tant que type O (référence d'objet).
Ldind.U1 Charge indirectement une valeur de type non signé int8 sur la pile d'évaluation en tant que int32.
Ldind.U2 Charge indirectement une valeur de type unsigned int16 sur la pile d'évaluation en tant que int32.
Ldind.U4 Charge indirectement une valeur de type unsigned int32 sur la pile d'évaluation en tant que int32.
Ldlen Poussez le nombre d'éléments d'un tableau unidimensionnel de base zéro sur la pile d'évaluation.
Ldloc Charge la variable locale à l'index spécifié sur la pile d'évaluation.
Ldloc.0 Charge la variable locale à l'index 0 sur la pile d'évaluation.
Ldloc.1 Charge la variable locale à l'index 1 sur la pile d'évaluation.
Ldloc.2 Charge la variable locale à l'index 2 sur la pile d'évaluation.
Ldloc.3 Charge la variable locale à l'index 3 sur la pile d'évaluation.
Ldloc.S Charge une variable locale à un index spécifique sur la pile d'évaluation (forme courte).
Ldloca Charge l'adresse d'une variable locale située à un index spécifique sur la pile d'évaluation.
Ldloca.S Charge l'adresse d'une variable locale située à un index spécifique sur la pile d'évaluation (forme courte).
Ldnull Poussez une référence nulle (de type O) sur la pile d'évaluation.
Ldobj Copie l'objet de type valeur pointé par adresse en haut de la pile d'évaluation.
Ldsfld Poussez la valeur du champ statique sur la pile de calcul.
Ldsflda Poussez l'adresse du champ statique sur la pile de calcul.
Ldstr Pousse une nouvelle référence d'objet à la chaîne stockée dans les métadonnées.
Ldtoken Convertit un jeton de métadonnées en sa représentation d'exécution et le place sur la pile de calcul.
Ldvirtftn Pousse un pointeur non géré (de type native int) sur la pile d'évaluation pointant vers le code natif qui implémente la méthode virtuelle spécifique associée à l'objet spécifié.
Quitter Quitte une région de code protégée et transfère sans condition le contrôle à une instruction cible spécifique.
Leave.S Quitte la région de code protégée et transfère sans condition le contrôle à l'instruction cible (forme abrégée).
Localloc Alloue un nombre spécifique d'octets du pool de mémoire dynamique locale et pousse l'adresse du premier octet alloué (pointeur transitoire, type *) sur le calcul empiler.
Mkrefany Pousse une référence typée à une instance d'un type spécifique sur la pile d'évaluation.
Mul Multipliez deux valeurs et poussez le résultat sur la pile de calcul.
Mul.Ovf Multipliez deux valeurs entières, effectuez une vérification de débordement et transférez le résultat sur la pile de calcul.
Mul.Ovf.Un Multipliez deux valeurs entières non signées, effectuez une vérification de débordement et transférez le résultat sur la pile d'évaluation.
Neg Effectue la négation d'une valeur et pousse le résultat sur la pile de calcul.
Newarr Poussez une référence d'objet à un nouveau tableau unidimensionnel de base zéro dont les éléments sont d'un type spécifique sur la pile d'évaluation.
Newobj Crée un nouvel objet ou une instance d'un type valeur et pousse la référence d'objet (de type O) sur la pile de calcul.
Nop Espace Paps si l'opcode est patché. Bien que des cycles de traitement puissent être consommés, aucune opération significative n'est effectuée.
Not Calcule le complément au niveau du bit de la valeur entière en haut de la pile et pousse le résultat sur la pile d'évaluation sous le même type.
Ou Calcule le complément au niveau du bit des deux valeurs entières en haut de la pile et pousse le résultat sur la pile d'évaluation.
Pop Supprime la valeur actuellement en haut de la pile de calcul.
Préfixe1 Infrastructure. Cette commande est réservée.
Préfixe2 Infrastructure. Cette commande est réservée.
Préfixe3 Infrastructure. Cette commande est réservée.
Préfixe4 Infrastructure. Cette commande est réservée.
Préfixe5 Infrastructure. Cette commande est réservée.
Préfixe6 Infrastructure. Cette commande est réservée.
Préfixe7 Infrastructure. Cette commande est réservée.
Préfixref Infrastructure. Cette commande est réservée.
Lecture seule Spécifie que l'opération d'adresse de tableau suivante n'effectue pas de vérification de type au moment de l'exécution et renvoie un pointeur géré avec une mutabilité limitée.
Refanytype Récupère une balise de type intégrée dans une référence typée.
Refanyval Récupère une adresse (& type) intégrée dans une référence typée.
Rem Divise deux valeurs et pousse le reste sur la pile de calcul.
Rem.Un Divise deux valeurs non signées et pousse le reste sur la pile d'évaluation.
Ret Renvoie la méthode actuelle et pousse la valeur de retour (si présente) de la pile de calcul de l'appelant vers la pile de calcul de l'appelé.
Rethrow Lance à nouveau l'exception actuelle.
Shl Décale la valeur entière vers la gauche (remplie de zéros) du nombre de places spécifié et pousse le résultat sur la pile d'évaluation.
Shr Décale la valeur entière vers la droite (en préservant le signe) du nombre de places spécifié et pousse le résultat sur la pile d'évaluation.
Shr.Un Décale une valeur entière non signée vers la droite (remplie de zéros) du nombre de places spécifié et pousse le résultat sur la pile d'évaluation.
Sizeof Poussez la taille (en octets) du type de valeur fourni sur la pile de calcul.
Starg Stocke la valeur en haut de la pile d'évaluation dans l'emplacement d'argument à l'index spécifié.
Starg.S Stocke la valeur en haut de la pile d'évaluation à l'index spécifié dans l'emplacement de paramètre (forme courte).
Stelem Remplace l'élément du tableau à l'index donné par la valeur de la pile de calcul, dont le type est spécifié dans la directive.
Stelem.I Remplace l'élément du tableau à l'index donné par la valeur int native sur la pile de calcul.
Stelem.I1 Remplace l'élément du tableau à l'index donné par la valeur int8 sur la pile de calcul.
Stelem.I2 Remplace l'élément du tableau à l'index donné par la valeur int16 sur la pile de calcul.
Stelem.I4 Remplace l'élément du tableau à l'index donné par la valeur int32 sur la pile de calcul.
Stelem.I8 Remplace l'élément du tableau à l'index donné par la valeur int64 sur la pile de calcul.
Stelem.R4 Remplace l'élément du tableau à l'index donné par une valeur float32 sur la pile de calcul.
Stelem.R8 Remplace l'élément du tableau à l'index donné par une valeur float64 sur la pile de calcul.
Stelem.Ref Remplace l'élément du tableau à l'index donné par la valeur de référence de l'objet (de type O) sur la pile de calcul.
Stfld Remplace la valeur stockée dans un champ d'une référence d'objet ou d'un pointeur par une nouvelle valeur.
Stind.I Stocke une valeur de type native int à l'adresse fournie.
Stind.I1 Stocke une valeur de type int8 à l'adresse fournie.
Stind.I2 Stocke une valeur de type int16 à l'adresse fournie.
Stind.I4 Stocke une valeur de type int32 à l'adresse fournie.
Stind.I8 Stocke une valeur int64 à l'adresse fournie.
Stind.R4 Stocke une valeur float32 à l'adresse fournie.
Stind.R8 Stocke une valeur float64 à l'adresse fournie.
Stind.Ref stocke la valeur de référence de l'objet à l'adresse fournie.
Stloc Présente la valeur actuelle du haut de la pile d'évaluation et la stocke dans une liste de variables locales à l'index spécifié.
Stloc.0 Présente la valeur actuelle du haut de la pile d'évaluation et la stocke dans la liste de variables locales à l'index 0.
Stloc.1 Présente la valeur actuelle du haut de la pile d'évaluation et la stocke dans la liste de variables locales à l'index 1.
Stloc.2 Présente la valeur actuelle du haut de la pile d'évaluation et la stocke dans la liste de variables locales à l'index 2.
Stloc.3 Présente la valeur actuelle du haut de la pile d'évaluation et la stocke dans la liste de variables locales à l'index 3.
Stloc.S Présente la valeur actuelle du haut de la pile de calcul et la stocke à l'index dans la liste des variables locales (forme courte).
Stobj Copie une valeur du type spécifié de la pile d'évaluation dans l'adresse mémoire fournie.
Stsfld Remplace la valeur d'un champ statique par la valeur de la pile de calcul.
Sub Soustrait une valeur d'autres valeurs et pousse le résultat sur la pile de calcul.
Sub.Ovf Soustrait une valeur entière d'une autre valeur, effectue une vérification de débordement et pousse le résultat sur la pile de calcul.
Sub.Ovf.Un Soustrait une valeur entière non signée d'une autre valeur, effectue une vérification de débordement et pousse le résultat sur la pile d'évaluation.
Switch implémente la table de sauts.
Tailcall Exécutez l'instruction d'appel de méthode suffixée pour supprimer le cadre de pile de la méthode actuelle avant d'exécuter l'instruction d'appel réelle.
Throw Lance l'objet d'exception actuellement sur la pile d'évaluation.
Non aligné Indique que l'adresse actuellement sur la pile d'évaluation ne peut pas être associée à un ldind, stind, ldfld, stfld, ldobj, stobj, initblk, ou instruction cpblk Alignement de taille naturelle.
Unbox Convertit la représentation encadrée d'un type valeur en sa forme non boxée.
Unbox.Any Convertit la représentation encadrée du type spécifié dans la directive en sa forme non boxée.
Volatile Spécifie que l'adresse actuellement en haut de la pile de calcul peut être volatile et que le résultat de la lecture de cet emplacement ne peut pas être mis en cache, ou que plusieurs Une zone de stockage ne peut pas être annulée.
Xor Calcule le XOR au niveau du bit des deux valeurs en haut de la pile d'évaluation et pousse le résultat sur la pile d'évaluation.

Résumé

Cet article vous donne uniquement un résumé des instructions IL sans les expliquer en détail. Un dicton ancien dit : il faut boire de l'eau une gorgée à la fois et marcher pas à pas sur la route. Si vous faites un pas trop grand, vous perdrez facilement votre temps. est un peu court, il y aura un prochain chapitre. Le prochain article portera toujours sur quelques instructions de base de l'IL. Je combinerai ma propre compréhension et essaierai d'écrire le texte aussi clairement que possible pour qu'il soit plus facile à comprendre pour tout le monde.

Ce qui précède est le contenu des instructions IL du langage intermédiaire .NET Framework. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn