Heim  >  Artikel  >  Backend-Entwicklung  >  .NET Framework Intermediate Language IL-Anweisungssammlung

.NET Framework Intermediate Language IL-Anweisungssammlung

黄舟
黄舟Original
2017-02-22 10:40:522057Durchsuche

IL ist die Abkürzung für Intermediate Language im .NET Framework. Mit dem vom .NET-Framework bereitgestellten Compiler können Sie das Quellprogramm direkt in eine .exe- oder .dll-Datei kompilieren. Der kompilierte Programmcode ist jedoch derzeit kein Maschinencode, der direkt von der CPU ausgeführt werden kann, sondern ein IL-Code (Intermediate Language).

Name Beschreibung
Hinzufügen Füge die beiden Werte hinzu und schiebe das Ergebnis auf auf dem Berechnungsstapel.
Add.Ovf Fügt zwei Ganzzahlen hinzu, führt eine Überlaufprüfung durch und legt das Ergebnis auf den Berechnungsstapel.
Add.Ovf.Un Fügt zwei vorzeichenlose Ganzzahlwerte hinzu, führt eine Überlaufprüfung durch und legt das Ergebnis auf den Auswertungsstapel.
Und Berechnet das bitweise UND zweier Werte und legt das Ergebnis auf den Auswertungsstapel.
Arglist Gibt einen nicht verwalteten Zeiger auf die Argumentliste der aktuellen Methode zurück.
Beq Wenn die beiden Werte gleich sind, übertragen Sie die Kontrolle an die Zielanweisung.
Beq.S Wenn die beiden Werte gleich sind, übertragen Sie die Kontrolle an die Zielanweisung (Kurzform).
Bge Wenn der erste Wert größer oder gleich dem zweiten Wert ist, übertragen Sie die Steuerung an die Zielanweisung.
Bge.S Wenn der erste Wert größer oder gleich dem zweiten Wert ist, übergeben Sie die Kontrolle an die Zielanweisung (Kurzform).
Bge.Un Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert größer als der zweite Wert ist, wird die Steuerung an übertragen die Zielanweisung.
Bge.Un.S Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert größer als der zweite Wert ist, wird die Kontrolle übertragen zur Zielanweisung (Kurzform).
Bgt Wenn der erste Wert größer als der zweite Wert ist, übertragen Sie die Kontrolle an die Zielanweisung.
Bgt.S Wenn der erste Wert größer als der zweite Wert ist, übergeben Sie die Kontrolle an die Zielanweisung (Kurzform).
Bgt.Un Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert größer als der zweite Wert ist, wird die Steuerung an übertragen die Zielanweisung.
Bgt.Un.S Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert größer als der zweite Wert ist, wird die Kontrolle übertragen zur Zielanweisung (Kurzform).
Ble Wenn der erste Wert kleiner oder gleich dem zweiten Wert ist, übertragen Sie die Steuerung an die Zielanweisung.
Ble.S Wenn der erste Wert kleiner oder gleich dem zweiten Wert ist, übertragen Sie die Kontrolle an die Zielanweisung (Kurzform).
Ble.Un Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert kleiner oder gleich dem zweiten Wert ist, dann steuern wird an die Zielanweisung übertragen.
Ble.Un.S Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert kleiner oder gleich dem zweiten Wert ist, dann wird die Kontrolle an die Zielanweisung (Kurzform) übergeben.
Blt Wenn der erste Wert kleiner als der zweite Wert ist, übertragen Sie die Steuerung an die Zielanweisung.
Blt.S Wenn der erste Wert kleiner als der zweite Wert ist, übergeben Sie die Kontrolle an die Zielanweisung (Kurzform).
Blt.Un Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert kleiner als der zweite Wert ist, wird die Steuerung an übertragen die Zielanweisung.
Blt.Un.S Wenn beim Vergleich von vorzeichenlosen Ganzzahlwerten oder unsortierbaren Gleitkommawerten der erste Wert kleiner als der zweite Wert ist, wird die Kontrolle übertragen zur Zielanweisung (Kurzform).
Bne.Un Wenn zwei vorzeichenlose Ganzzahlwerte oder unsortierbare Gleitkommawerte nicht gleich sind, übertragen Sie die Steuerung an die Zielanweisung.
Bne.Un.S Wenn zwei vorzeichenlose Ganzzahlwerte oder unsortierbare Gleitkommawerte nicht gleich sind, übertragen Sie die Steuerung an die Zielanweisung (kurz). Format).
Box Konvertiert eine Wertklasse in eine Objektreferenz (O-Typ).
Br Überträgt die Kontrolle bedingungslos an die Zielanweisung.
Br.S Übergibt die Kontrolle bedingungslos an die Zielanweisung (Kurzform).
Break Sendet ein Signal an das Common Language Construct (CLI), um den Debugger darüber zu informieren, dass ein Haltepunkt erreicht wurde.
Brfalse Wenn der Wert falsch ist, überträgt ein Nullverweis (Nothing in Visual Basic) oder Null die Steuerung an die Zielanweisung.
Brfalse.S Wenn der Wert falsch, eine Nullreferenz oder Null ist, wird die Steuerung an die Zielanweisung übertragen.
Brtrue Wenn der Wert wahr, ungleich Null oder ungleich Null ist, wird die Steuerung an die Zielanweisung übertragen.
Brtrue.S Wenn der Wert wahr, ungleich Null oder ungleich Null ist, übertragen Sie die Steuerung an die Zielanweisung (Kurzform).
Call ruft die Methode auf, die durch den übergebenen Methodenspezifizierer angegeben wird.
Calli Rufen Sie die auf dem Berechnungsstapel angegebene Methode (als Zeiger auf den Einstiegspunkt) mit den in der Aufrufkonvention beschriebenen Parametern auf.
Callvirt Ruft eine spät gebundene Methode für ein Objekt auf und legt den Rückgabewert auf den Berechnungsstapel.
Castclass Versuche, das als Referenz übergebene Objekt in die angegebene Klasse umzuwandeln.
Ceq Vergleicht zwei Werte. Wenn die beiden Werte gleich sind, wird der ganzzahlige Wert 1 (int32) auf den Auswertungsstapel geschoben, andernfalls wird 0 (int32) auf den Auswertungsstapel geschoben.
Cgt Vergleicht zwei Werte. Wenn der erste Wert größer als der zweite Wert ist, wird der ganzzahlige Wert 1 (int32) auf den Bewertungsstapel verschoben, andernfalls wird 0 (int32) auf den Bewertungsstapel verschoben.
Cgt.Un Vergleicht zwei vorzeichenlose oder unsortierbare Werte. Wenn der erste Wert größer als der zweite Wert ist, wird der ganzzahlige Wert 1 (int32) auf den Bewertungsstapel verschoben, andernfalls wird 0 (int32) auf den Bewertungsstapel verschoben.
Ckfinite Wirft eine ArithmeticException aus, wenn der Wert keine endliche Zahl ist.
Clt Vergleicht zwei Werte. Wenn der erste Wert kleiner als der zweite Wert ist, wird der ganzzahlige Wert 1 (int32) auf den Bewertungsstapel verschoben, andernfalls wird 0 (int32) auf den Bewertungsstapel verschoben.
Clt.Un Vergleicht die vorzeichenlosen oder unsortierbaren Werte value1 und value2. Wenn Wert1 kleiner als Wert2 ist, wird der ganzzahlige Wert 1 (int32) auf den Bewertungsstapel verschoben, andernfalls wird 0 (int32) auf den Bewertungsstapel verschoben.
Eingeschränkt Schränkt den Typ ein, für den virtuelle Methodenaufrufe durchgeführt werden sollen.
Conv.I Konvertiert den Wert oben im Berechnungsstapel in einen nativen int.
Conv.I1 Konvertiert den Wert oben im Berechnungsstapel in einen int8 und erweitert ihn dann auf einen int32 (füllt ihn auf).
Conv.I2 Konvertiert den Wert oben im Berechnungsstapel in einen int16 und erweitert ihn dann (auffüllen) auf einen int32.
Conv.I4 Konvertiert den Wert oben im Berechnungsstapel in einen int32.
Conv.I8 Konvertieren Sie den Wert oben im Berechnungsstapel in einen int64.
Conv.Ovf.I Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenbehafteten nativen Int und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.I.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenbehafteten nativen Int und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.I1 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int8 und erweitert ihn auf einen int32, wobei bei Überlauf eine OverflowException ausgelöst wird .
Conv.Ovf.I1.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int8 und erweitert ihn auf einen int32 und bei Überlauf Löst eine OverflowException aus.
Conv.Ovf.I2 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int16 und erweitert ihn auf einen int32, wobei bei Überlauf eine OverflowException ausgelöst wird .
Conv.Ovf.I2.Un Konvertieren Sie den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int16 und erweitern Sie ihn auf einen int32 und bei Überlauf Löst eine OverflowException aus.
Conv.Ovf.I4 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int32 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.I4.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int32 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.I8 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int64 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.I8.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenbehafteten int64 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenlosen nativen int und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenlosen nativen int und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U1 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenlosen int8 und erweitert ihn auf einen int32, wobei bei Überlauf eine OverflowException ausgelöst wird .
Conv.Ovf.U1.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in unsigned int8 und erweitert ihn auf int32, was bei Überlauf eine OverflowException auslöst.
Conv.Ovf.U2 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenlosen int16 und erweitert ihn auf einen int32, wobei bei Überlauf eine OverflowException ausgelöst wird .
Conv.Ovf.U2.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenlosen int16 und erweitert ihn auf einen int32, der bei Überlauf erhöht wird OverflowException.
Conv.Ovf.U4 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in einen vorzeichenlosen int32 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U4.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in einen vorzeichenlosen int32 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U8 Konvertiert den vorzeichenbehafteten Wert oben im Auswertungsstapel in unsigned int64 und löst bei Überlauf eine OverflowException aus.
Conv.Ovf.U8.Un Konvertiert den vorzeichenlosen Wert oben im Auswertungsstapel in unsigned int64 und löst bei Überlauf eine OverflowException aus.
Conv.R.Un Konvertiert den vorzeichenlosen ganzzahligen Wert oben im Auswertungsstapel in einen float32.
Conv.R4 Konvertiert den Wert oben im Berechnungsstapel in einen Float32.
Conv.R8 Konvertiert den Wert oben im Berechnungsstapel in float64.
Conv.U Konvertiert den Wert oben im Berechnungsstapel in einen vorzeichenlosen nativen int und erweitert ihn dann in einen nativen int.
Conv.U1 Konvertiert den Wert oben im Berechnungsstapel in einen vorzeichenlosen int8 und erweitert ihn dann auf einen int32.
Conv.U2 Konvertiert den Wert oben im Berechnungsstapel in einen vorzeichenlosen int16 und erweitert ihn dann auf einen int32.
Conv.U4 Konvertiert den Wert oben im Berechnungsstapel in einen vorzeichenlosen int32 und erweitert ihn dann in einen int32.
Conv.U8 Konvertiert den Wert oben im Berechnungsstapel in einen vorzeichenlosen int64-Wert und erweitert ihn dann in einen int64-Wert.
Cpblk Kopiert die angegebene Anzahl von Bytes von der Quelladresse zur Zieladresse.
Cpobj Kopiert den Werttyp an der Adresse des Objekts (&, * oder nativer int-Typ) an die Adresse des Zielobjekts (&, * oder nativer int-Typ).
p Dividiert zwei Werte und legt das Ergebnis als Float (Typ F) oder Quotient (Typ int32) auf den Auswertungsstapel.
p.Un Dividiert zwei vorzeichenlose Ganzzahlwerte und schiebt das Ergebnis ( int32 ) auf den Auswertungsstapel.
Dup Kopiert den aktuell obersten Wert auf dem Berechnungsstapel und verschiebt die Kopie dann auf den Berechnungsstapel.
Endfilter Überträgt die Kontrolle von der Filterklausel der Ausnahme zurück an den Ausnahmehandler des Common Language Construct (CLI).
Endfinally Überträgt die Kontrolle von der Fault- oder Final-Klausel des Ausnahmeblocks zurück an den Ausnahmehandler des Common Language Construct (CLI).
Initblk Initialisiert den angegebenen Speicherblock an einer bestimmten Adresse auf die angegebene Größe und den angegebenen Anfangswert.
Initobj Initialisiert jedes Feld des Werttyps an der angegebenen Adresse mit einer Nullreferenz oder 0 für den entsprechenden primitiven Typ.
Isinst Testet, ob eine Objektreferenz (vom Typ O) eine Instanz einer bestimmten Klasse ist.
Jmp Beenden Sie die aktuelle Methode und springen Sie zur angegebenen Methode.
Ldarg Ladet das Argument (referenziert durch den angegebenen Indexwert) auf den Stapel.
Ldarg.0 Ladet den Parameter mit Index 0 auf den Auswertungsstapel.
Ldarg.1 Ladet den Parameter mit Index 1 auf den Auswertungsstapel.
Ldarg.2 Ladet den Parameter mit Index 2 auf den Auswertungsstapel.
Ldarg.3 Ladet das Argument mit Index 3 auf den Auswertungsstapel.
Ldarg.S Ladet das Argument (referenziert durch den angegebenen Kurzindex) auf den Auswertungsstapel.
Ldarga Ladet die Parameteradresse auf den Berechnungsstapel.
Ldarga.S Ladet Parameteradressen im Kurzformat auf den Berechnungsstapel.
Ldc.I4 Schiebt den bereitgestellten Wert vom Typ int32 als int32 auf den Auswertungsstapel.
Ldc.I4.0 Schiebe den ganzzahligen Wert 0 als int32 auf den Berechnungsstapel.
Ldc.I4.1 Schieben Sie den ganzzahligen Wert 1 als int32 auf den Auswertungsstapel.
Ldc.I4.2 Schieben Sie den Ganzzahlwert 2 als int32 auf den Auswertungsstapel.
Ldc.I4.3 Schiebe den ganzzahligen Wert 3 als int32 auf den Auswertungsstapel.
Ldc.I4.4 Schieben Sie den ganzzahligen Wert 4 als int32 auf den Berechnungsstapel.
Ldc.I4.5 Schieben Sie den ganzzahligen Wert 5 als int32 auf den Berechnungsstapel.
Ldc.I4.6 Schieben Sie den ganzzahligen Wert 6 als int32 auf den Berechnungsstapel.
Ldc.I4.7 Schieben Sie den ganzzahligen Wert 7 als int32 auf den Berechnungsstapel.
Ldc.I4.8 Schieben Sie den ganzzahligen Wert 8 als int32 auf den Berechnungsstapel.
Ldc.I4.M1 Schieben Sie den ganzzahligen Wert -1 als int32 auf den Berechnungsstapel.
Ldc.I4.S Schieben Sie den bereitgestellten int8-Wert als int32 (Kurzform) auf den Berechnungsstapel.
Ldc.I8 Schiebt den bereitgestellten Wert vom Typ int64 als int64 auf den Auswertungsstapel.
Ldc.R4 Schiebt den bereitgestellten Wert vom Typ float32 als Typ F (float) auf den Auswertungsstapel.
Ldc.R8 Schiebt den bereitgestellten Wert vom Typ float64 als Typ F (float) auf den Auswertungsstapel.
Ldelem Lädt das Element am angegebenen Array-Index an die Spitze des Auswertungsstapels, entsprechend dem in der Direktive angegebenen Typ.
Ldelem.I Lädt das Element vom Typ native int am angegebenen Array-Index als natives int oben im Auswertungsstapel.
Ldelem.I1 Lädt das Element vom Typ int8 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelem.I2 Lädt das Element vom Typ int16 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelem.I4 Lädt das Element vom Typ int32 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelem.I8 Lädt das Element vom Typ int64 am angegebenen Array-Index als int64 oben im Auswertungsstapel.
Ldelem.R4 Lädt das Element vom Typ float32 am angegebenen Array-Index oben auf dem Auswertungsstapel als Typ F (Float).
Ldelem.R8 Lädt das Element vom Typ float64 am angegebenen Array-Index oben auf dem Auswertungsstapel als Typ F (Float).
Ldelem.Ref Ladet das Element, das die Objektreferenz am angegebenen Array-Index enthält, als O-Typ (Objektreferenz) oben auf den Auswertungsstapel.
Ldelem.U1 Lädt das Element vom Typ unsigned int8 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelem.U2 Lädt das Element vom Typ unsigned int16 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelem.U4 Lädt das Element vom Typ unsigned int32 am angegebenen Array-Index als int32 oben im Auswertungsstapel.
Ldelema Lädt die Adresse des Array-Elements am angegebenen Array-Index als &-Typ (verwalteter Zeiger) oben auf den Auswertungsstapel.
Ldfld Findet den Wert des Feldes in dem Objekt, dessen Referenz sich derzeit auf dem Berechnungsstapel befindet.
Ldflda Findet die Adresse eines Feldes in einem Objekt, dessen Referenz sich derzeit auf dem Berechnungsstapel befindet.
Ldftn Schiebt einen nicht verwalteten Zeiger (vom Typ native int) auf nativen Code, der eine bestimmte Methode auf dem Auswertungsstapel implementiert.
Ldind.I Lädt einen Wert vom Typ native int indirekt als natives int auf den Berechnungsstapel.
Ldind.I1 Lädt einen Wert vom Typ int8 indirekt als int32 auf den Auswertungsstapel.
Ldind.I2 Lädt einen Wert vom Typ int16 indirekt als int32 auf den Auswertungsstapel.
Ldind.I4 Lädt einen Wert vom Typ int32 als int32-Indirektion auf den Auswertungsstapel.
Ldind.I8 Lädt einen Wert vom Typ int64 als int64-Indirektion auf den Auswertungsstapel.
Ldind.R4 Lädt einen float32-Wert indirekt als F-Typ (Float) auf den Berechnungsstapel.
Ldind.R8 Lädt einen float64-Wert indirekt als F-Typ (Float) auf den Berechnungsstapel.
Ldind.Ref Lädt eine Objektreferenz indirekt als O-Typ (Objektreferenz) auf den Auswertungsstapel.
Ldind.U1 Lädt einen Wert vom Typ unsigned int8 indirekt als int32 auf den Auswertungsstapel.
Ldind.U2 Lädt einen Wert vom Typ unsigned int16 indirekt als int32 auf den Auswertungsstapel.
Ldind.U4 Lädt einen Wert vom Typ unsigned int32 indirekt als int32 auf den Auswertungsstapel.
Ldlen Schieben Sie die Anzahl der Elemente eines nullbasierten, eindimensionalen Arrays auf den Auswertungsstapel.
Ldloc Lädt die lokale Variable am angegebenen Index auf den Auswertungsstapel.
Ldloc.0 Lädt die lokale Variable am Index 0 auf den Auswertungsstapel.
Ldloc.1 Lädt die lokale Variable am Index 1 auf den Auswertungsstapel.
Ldloc.2 Lädt die lokale Variable am Index 2 auf den Auswertungsstapel.
Ldloc.3 Lädt die lokale Variable am Index 3 auf den Auswertungsstapel.
Ldloc.S Lädt eine lokale Variable an einem bestimmten Index auf den Auswertungsstapel (Kurzform).
Ldloca Lädt die Adresse einer lokalen Variablen, die sich an einem bestimmten Index befindet, auf den Auswertungsstapel.
Ldloca.S Lädt die Adresse einer lokalen Variablen, die sich an einem bestimmten Index befindet, auf den Auswertungsstapel (Kurzform).
Ldnull Schieben Sie eine Nullreferenz (vom Typ O) auf den Auswertungsstapel.
Ldobj Kopiert das Werttypobjekt, auf das die Adresse zeigt, an die Spitze des Auswertungsstapels.
Ldsfld Schieben Sie den Wert des statischen Felds auf den Berechnungsstapel.
Ldsflda Schieben Sie die Adresse des statischen Felds auf den Berechnungsstapel.
Ldstr Schiebt eine neue Objektreferenz auf die in den Metadaten gespeicherte Zeichenfolge.
Ldtoken Konvertiert ein Metadaten-Token in seine Laufzeitdarstellung und verschiebt es auf den Rechenstapel.
Ldvirtftn Schiebt einen nicht verwalteten Zeiger (vom Typ native int) auf den Auswertungsstapel, der auf nativen Code zeigt, der die spezifische virtuelle Methode implementiert, die dem angegebenen Objekt zugeordnet ist.
Verlassen Verlässt einen geschützten Codebereich und überträgt die Kontrolle bedingungslos an eine bestimmte Zielanweisung.
Leave.S Verlässt den geschützten Codebereich und überträgt die Kontrolle bedingungslos an die Zielanweisung (Kurzform).
Localloc Ordnet eine bestimmte Anzahl von Bytes aus dem lokalen dynamischen Speicherpool zu und schiebt die Adresse des ersten zugewiesenen Bytes (Transientenzeiger, *-Typ) in die Berechnung ein Stapel.
Mkrefany Schiebt einen typisierten Verweis auf eine Instanz eines bestimmten Typs auf den Auswertungsstapel.
Mul Multiplizieren Sie zwei Werte und schieben Sie das Ergebnis auf den Berechnungsstapel.
Mul.Ovf Multiplizieren Sie zwei ganzzahlige Werte, führen Sie eine Überlaufprüfung durch und verschieben Sie das Ergebnis auf den Berechnungsstapel.
Mul.Ovf.Un Multiplizieren Sie zwei vorzeichenlose Ganzzahlwerte, führen Sie eine Überlaufprüfung durch und verschieben Sie das Ergebnis auf den Auswertungsstapel.
Neg Führt die Negation eines Werts durch und legt das Ergebnis auf den Berechnungsstapel.
Newarr Schieben Sie eine Objektreferenz auf ein neues nullbasiertes eindimensionales Array, dessen Elemente von einem bestimmten Typ sind, auf den Auswertungsstapel.
Newobj Erstellt ein neues Objekt oder eine neue Instanz eines Werttyps und schiebt die Objektreferenz (vom Typ O) auf den Berechnungsstapel.
Nein Paps Platz, wenn Opcode gepatcht ist. Obwohl Verarbeitungszyklen in Anspruch genommen werden können, wird kein sinnvoller Vorgang ausgeführt.
Nicht Berechnet das bitweise Komplement des ganzzahligen Werts oben im Stapel und legt das Ergebnis als denselben Typ auf dem Auswertungsstapel ab.
Oder Berechnet das bitweise Komplement der beiden ganzzahligen Werte oben im Stapel und legt das Ergebnis auf den Auswertungsstapel.
Pop Entfernt den Wert, der sich derzeit ganz oben im Berechnungsstapel befindet.
Präfix1 Infrastruktur. Dieser Befehl ist reserviert.
Präfix2 Infrastruktur. Dieser Befehl ist reserviert.
Präfix3 Infrastruktur. Dieser Befehl ist reserviert.
Präfix4 Infrastruktur. Dieser Befehl ist reserviert.
Präfix5 Infrastruktur. Dieser Befehl ist reserviert.
Präfix6 Infrastruktur. Dieser Befehl ist reserviert.
Präfix7 Infrastruktur. Dieser Befehl ist reserviert.
Präfixref Infrastruktur. Dieser Befehl ist reserviert.
Schreibgeschützt Gibt an, dass der nachfolgende Array-Adressvorgang keine Typprüfung zur Laufzeit durchführt und einen verwalteten Zeiger mit eingeschränkter Veränderbarkeit zurückgibt.
Refanytype Ruft ein Typ-Tag ab, das in eine typisierte Referenz eingebettet ist.
Refanyval Ruft eine Adresse (und einen Typ) ab, die in eine typisierte Referenz eingebettet ist.
Rem Dividiert zwei Werte und schiebt den Rest auf den Berechnungsstapel.
Rem.Un Dividiert zwei vorzeichenlose Werte und schiebt den Rest auf den Auswertungsstapel.
Ret Kehrt von der aktuellen Methode zurück und schiebt den Rückgabewert (falls vorhanden) vom Berechnungsstapel des Aufrufers auf den Berechnungsstapel des Aufgerufenen.
Erneut auslösen Wirft die aktuelle Ausnahme erneut aus.
Shl Verschiebt den ganzzahligen Wert um die angegebene Anzahl von Stellen nach links (aufgefüllt mit Nullen) und legt das Ergebnis auf den Auswertungsstapel.
Shr Schiebt den ganzzahligen Wert (vorzeichenerhaltend) um die angegebene Anzahl von Stellen nach rechts und legt das Ergebnis auf den Auswertungsstapel.
Shr.Un Schiebt einen vorzeichenlosen ganzzahligen Wert um die angegebene Anzahl von Stellen nach rechts (aufgefüllt mit Nullen) und legt das Ergebnis auf den Auswertungsstapel.
Sizeof Schieben Sie die Größe (in Bytes) des bereitgestellten Werttyps auf den Berechnungsstapel.
Starg Speichert den Wert oben im Auswertungsstapel im Argumentslot am angegebenen Index.
Starg.S Speichert den Wert oben im Auswertungsstapel am angegebenen Index im Parameterslot (Kurzform).
Stelem Ersetzt das Array-Element am angegebenen Index durch den Wert aus dem Berechnungsstapel, dessen Typ in der Direktive angegeben ist.
Stelem.I Ersetzt das Array-Element am angegebenen Index durch den nativen int-Wert auf dem Berechnungsstapel.
Stelem.I1 Ersetzt das Array-Element am angegebenen Index durch den int8-Wert auf dem Berechnungsstapel.
Stelem.I2 Ersetzt das Array-Element am angegebenen Index durch den int16-Wert auf dem Berechnungsstapel.
Stelem.I4 Ersetzt das Array-Element am angegebenen Index durch den int32-Wert auf dem Berechnungsstapel.
Stelem.I8 Ersetzt das Array-Element am angegebenen Index durch den int64-Wert auf dem Berechnungsstapel.
Stelem.R4 Ersetzt das Array-Element am angegebenen Index durch einen float32-Wert auf dem Berechnungsstapel.
Stelem.R8 Ersetzt das Array-Element am angegebenen Index durch einen float64-Wert auf dem Berechnungsstapel.
Stelem.Ref Ersetzt das Array-Element am angegebenen Index durch den Objektreferenzwert (vom Typ O) auf dem Berechnungsstapel.
Stfld Ersetzt den in einem Feld einer Objektreferenz oder eines Zeigers gespeicherten Wert durch einen neuen Wert.
Stind.I Speichert einen Wert vom Typ native int an der angegebenen Adresse.
Stind.I1 Speichert einen Wert vom Typ int8 an der angegebenen Adresse.
Stind.I2 Speichert einen Wert vom Typ int16 an der angegebenen Adresse.
Stind.I4 Speichert einen Wert vom Typ int32 an der angegebenen Adresse.
Stind.I8 Speichert einen Wert vom Typ int64 an der angegebenen Adresse.
Stind.R4 Speichert einen Float32-Wert an der angegebenen Adresse.
Stind.R8 Speichert einen float64-Wert an der angegebenen Adresse.
Stind.Ref speichert den Objektreferenzwert an der angegebenen Adresse.
Stloc Fügt den aktuellen Wert von oben aus dem Auswertungsstapel ein und speichert ihn in einer Liste lokaler Variablen am angegebenen Index.
Stloc.0 Fügt den aktuellen Wert von oben aus dem Auswertungsstapel ein und speichert ihn in der lokalen Variablenliste bei Index 0.
Stloc.1 Fügt den aktuellen Wert von der Spitze des Auswertungsstapels ein und speichert ihn in der lokalen Variablenliste bei Index 1.
Stloc.2 Fügt den aktuellen Wert von der Spitze des Auswertungsstapels ein und speichert ihn in der lokalen Variablenliste bei Index 2.
Stloc.3 Fügt den aktuellen Wert von der Spitze des Auswertungsstapels ein und speichert ihn in der lokalen Variablenliste bei Index 3.
Stloc.S Fügt den aktuellen Wert von oben aus dem Berechnungsstapel ein und speichert ihn am Index in der lokalen Variablenliste (Kurzform).
Stobj Kopiert einen Wert des angegebenen Typs aus dem Auswertungsstapel in die bereitgestellte Speicheradresse.
Stsfld Ersetzt den Wert eines statischen Feldes durch den Wert aus dem Berechnungsstapel.
Sub Subtrahiert einen Wert von anderen Werten und legt das Ergebnis auf den Berechnungsstapel.
Sub.Ovf Subtrahiert einen ganzzahligen Wert von einem anderen Wert, führt eine Überlaufprüfung durch und legt das Ergebnis auf den Berechnungsstapel.
Sub.Ovf.Un Subtrahiert einen vorzeichenlosen ganzzahligen Wert von einem anderen Wert, führt eine Überlaufprüfung durch und legt das Ergebnis auf den Auswertungsstapel.
Switch implementiert die Sprungtabelle.
Tailcall Führen Sie die angehängte Methodenaufrufanweisung aus, um den Stapelrahmen der aktuellen Methode zu entfernen, bevor Sie die eigentliche Aufrufanweisung ausführen.
Throw Wirft das derzeit auf dem Auswertungsstapel befindliche Ausnahmeobjekt aus.
Nicht ausgerichtet Gibt an, dass die aktuell auf dem Auswertungsstapel befindliche Adresse möglicherweise nicht mit einem unmittelbar folgenden ldind, stind, ldfld, stfld, ldobj, stobj, initblk, oder cpblk-Anweisung Ausrichtung in natürlicher Größe.
Unbox Konvertiert die geschachtelte Darstellung eines Werttyps in seine entschachtelte Form.
Unbox.Any Konvertiert die geschachtelte Darstellung des in der Direktive angegebenen Typs in seine ungeschachtelte Form.
Volatil Gibt an, dass die Adresse, die sich derzeit ganz oben im Berechnungsstapel befindet, flüchtig sein kann und dass das Ergebnis des Lesens dieses Standorts oder dieses Vielfachen nicht zwischengespeichert werden kann Ein Lagerort kann nicht storniert werden.
Xor Berechnet das bitweise XOR der beiden Werte oben im Auswertungsstapel und legt das Ergebnis auf den Auswertungsstapel.

Zusammenfassung

Dieser Artikel gibt Ihnen nur eine Zusammenfassung der IL-Anweisungen, ohne sie im Detail zu erklären. Ein altes Sprichwort besagt: Man muss einen Schluck Wasser trinken und den Weg Schritt für Schritt gehen. Wenn man einen zu großen Schritt macht, verliert man schnell die Beherrschung ist etwas kurz, es wird ein nächstes Kapitel geben. Im nächsten Artikel werde ich noch über einige grundlegende Anweisungen von IL schreiben. Ich werde mein eigenes Verständnis kombinieren und versuchen, den Text so einfach wie möglich zu schreiben, damit er für alle leichter verständlich ist.

Das Obige ist der Inhalt der .NET Framework Intermediate Language IL-Anweisungen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn