قائمة تعليمات CIL
هذه قائمة بالتعليمات الموجودة في مجموعة تعليمات بايت كود لغة الوسيط المشتركة.
- رمز العملية (Opcode) هو جزء من تعليمات لغة الآلة التي تحدد العملية المراد تنفيذها.
- تشكل التعليمات الأساسية مجموعة تعليمات كاملة تورينج .
- توفر تعليمات نموذج الكائن تطبيقًا لنظام النوع المشترك .
| رمز العملية | تعليمات | وصف | نوع التعليم |
|---|---|---|---|
| 0x58 | add | أضف قيمتين، ثم أعد قيمة جديدة. | التعليمات الأساسية |
| 0xD6 | add.ovf | أضف قيم الأعداد الصحيحة الموقعة مع التحقق من تجاوز السعة . | التعليمات الأساسية |
| 0xD7 | add.ovf.un | أضف قيم الأعداد الصحيحة غير الموقعة مع التحقق من تجاوز التدفق . | التعليمات الأساسية |
| 0x5F | and | عملية AND الثنائية لقيمتين صحيحتين تُرجع قيمة صحيحة. | التعليمات الأساسية |
| 0xFE 0x00 | arglist | إرجاع مُعرّف قائمة الوسائط للطريقة الحالية. | التعليمات الأساسية |
| 0x3B | beq <int32 (target)> | الفرع B يستهدف إذا كان متساوياً . | التعليمات الأساسية |
| 0x2E | beq.s <int8 (target)> | الفرع المستهدف إذا كان متساوياً ، الشكل المختصر . | التعليمات الأساسية |
| 0x3C | bge <int32 (target)> | الفرع المستهدف إذا كان g أكبر من أو يساوي . | التعليمات الأساسية |
| 0x2F | bge.s <int8 (target)> | الفرع المستهدف إذا كان أكبر من أو يساوي ، الشكل المختصر . | التعليمات الأساسية |
| 0x41 | bge.un <int32 (target)> | الفرع المستهدف إذا كان g أكبر من أو يساوي ( غير موقع أو غير مطلوب). | التعليمات الأساسية |
| 0x34 | bge.un.s <int8 (target)> | الفرع المستهدف إذا كان أكبر من أو يساوي ( غير موقع أو غير مرتب)، نموذج مختصر . | التعليمات الأساسية |
| 0x3D | bgt <int32 (target)> | الفرع المستهدف إذا كان أكبر من . | التعليمات الأساسية |
| 0x30 | bgt.s <int8 (target)> | الفرع المستهدف إذا كان أكبر من ، الشكل المختصر . | التعليمات الأساسية |
| 0x42 | bgt.un <int32 (target)> | الفرع المستهدف إذا كان أكبر من ( غير موقع أو غير مطلوب). | التعليمات الأساسية |
| 0x35 | bgt.un.s <int8 (target)> | الفرع المستهدف إذا كان أكبر من ( غير موقع أو غير مطلوب)، نموذج مختصر . | التعليمات الأساسية |
| 0x3E | ble <int32 (target)> | الفرع المستهدف إذا كان أقل من أو يساوي . | التعليمات الأساسية |
| 0x31 | ble.s <int8 (target)> | الفرع المستهدف إذا كان أقل من أو يساوي ، صيغة مختصرة. | التعليمات الأساسية |
| 0x43 | ble.un <int32 (target)> | الفرع المستهدف إذا كان أقل من أو يساوي ( غير موقع أو غير مطلوب). | التعليمات الأساسية |
| 0x36 | ble.un.s <int8 (target)> | الفرع المستهدف إذا كان أقل من أو يساوي ( غير موقع أو غير مطلوب)، نموذج مختصر . | التعليمات الأساسية |
| 0x3F | blt <int32 (target)> | الفرع المستهدف إذا كان أقل من . | التعليمات الأساسية |
| 0x32 | blt.s <int8 (target)> | الفرع المستهدف إذا كان أقل من ، الشكل المختصر . | التعليمات الأساسية |
| 0x44 | blt.un <int32 (target)> | الفرع المستهدف إذا كان أقل من ( غير موقع أو غير مطلوب). | التعليمات الأساسية |
| 0x37 | blt.un.s <int8 (target)> | الفرع المستهدف إذا كان أقل من ( غير موقع أو غير مطلوب)، نموذج مختصر . | التعليمات الأساسية |
| 0x40 | bne.un <int32 (target)> | B ranch to target if une qual or un order. | التعليمات الأساسية |
| 0x33 | bne.un.s <int8 (target)> | الفرع المستهدف إذا كان غير مؤهل أو غير منظم، شكل مختصر . | التعليمات الأساسية |
| 0x8C | box <typeTok> | قم بتحويل قيمة قابلة للتحويل إلى شكلها المعبأ . | تعليمات نموذج الكائن |
| 0x38 | br <int32 (target)> | التفرع إلى الهدف. | التعليمات الأساسية |
| 0x2B | br.s <int8 (target)> | فرع إلى هدف، شكل مختصر . | التعليمات الأساسية |
| 0x01 | break | أبلغ مصحح الأخطاء بأنه تم الوصول إلى نقطة توقف . | التعليمات الأساسية |
| 0x39 | brfalse <int32 (target)> | قم بالتفرع إلى الهدف إذا كانت القيمة صفر ( خطأ ). | التعليمات الأساسية |
| 0x2C | brfalse.s <int8 (target)> | التفرع إلى الهدف إذا كانت القيمة صفر ( خطأ )، صيغة مختصرة . | التعليمات الأساسية |
| 0x3A | brinst <int32 (target)> | Brach to target if value is a non null object reference (alias for brtrue ). | التعليمات الأساسية |
| 0x2D | brinst.s <int8 (target)> | Brach to target if value is a non-null object reference, s sh short form (alias for brtrue.s ). | التعليمات الأساسية |
| 0x39 | brnull <int32 (target)> | الفرع إلى الهدف إذا كانت القيمة فارغة (اسم بديل لـ brfalse ). | التعليمات الأساسية |
| 0x2C | brnull.s <int8 (target)> | الفرع إلى الهدف إذا كانت القيمة فارغة (اسم بديل لـ brfalse.s )، الشكل المختصر . | التعليمات الأساسية |
| 0x3A | brtrue <int32 (target)> | قم بالتفرع إلى الهدف إذا كانت القيمة غير صفرية ( صحيح ). | التعليمات الأساسية |
| 0x2D | brtrue.s <int8 (target)> | التفرع إلى الهدف إذا كانت القيمة غير صفرية ( صحيح )، الشكل المختصر . | التعليمات الأساسية |
| 0x39 | brzero <int32 (target)> | الفرع إلى الهدف إذا كانت القيمة صفرًا (اسم بديل لـ brfalse ). | التعليمات الأساسية |
| 0x2C | brzero.s <int8 (target)> | التفرع إلى الهدف إذا كانت القيمة صفرًا (اسم بديل لـ brfalse.s )، صيغة مختصرة . | التعليمات الأساسية |
| 0x28 | call <method> | استدعاء الطريقة الموصوفة في هذه الطريقة. | التعليمات الأساسية |
| 0x29 | calli <callsitedescr> | استدعاء الدالة المشار إليها في المكدس مع الوسائط الموصوفة بواسطة callsitedescr. | التعليمات الأساسية |
| 0x6F | callvirt <method> | استدعاء دالة مرتبطة بكائن. | تعليمات نموذج الكائن |
| 0x74 | castclass <class> | قم بتحويل الكائن إلى فئة . | تعليمات نموذج الكائن |
| 0xFE 0x01 | ceq | قم بدفع 1 (من النوع int32) إذا كانت قيمة value1 تساوي قيمة value2، وإلا فقم بدفع 0. | التعليمات الأساسية |
| 0xFE 0x02 | cgt | قم بدفع 1 (من النوع int32) إذا كانت القيمة 1 أكبر من القيمة 2، وإلا فقم بدفع 0. | التعليمات الأساسية |
| 0xFE 0x03 | cgt.un | قم بدفع 1 (من النوع int32) إذا كانت القيمة 1 أكبر من القيمة 2، أو غير موقعة أو غير مرتبة، وإلا فقم بدفع 0. | التعليمات الأساسية |
| 0xC3 | ckfinite | قم برمي استثناء ArithmeticException إذا لم تكن القيمة عددًا محدودًا . | التعليمات الأساسية |
| 0xFE 0x04 | clt | قم بدفع 1 (من النوع int32) إذا كانت القيمة 1 أقل من القيمة 2، وإلا فقم بدفع 0. | التعليمات الأساسية |
| 0xFE 0x05 | clt.un | قم بدفع 1 (من النوع int32) إذا كانت القيمة 1 أقل من القيمة 2، أو غير موقعة أو غير مرتبة، وإلا فقم بدفع 0. | التعليمات الأساسية |
| 0xFE 0x16 | constrained. <thisType> | استدعاء دالة افتراضية على نوع مقيد ليكون من النوع T. | بادئة للتعليمات |
| 0xD3 | conv.i | قم بالتحويل إلى نوع البيانات الأصلي int، ثم قم بدفع نوع البيانات الأصلي int إلى المكدس. | التعليمات الأساسية |
| 0x67 | conv.i1 | قم بالتحويل إلى int8 ، ثم قم بدفع int32 إلى المكدس. | التعليمات الأساسية |
| 0x68 | conv.i2 | قم بالتحويل إلى int16 ، ثم قم بدفع int32 إلى المكدس. | التعليمات الأساسية |
| 0x69 | conv.i4 | قم بالتحويل إلى int32 ، ثم قم بدفع int32 إلى المكدس. | التعليمات الأساسية |
| 0x6A | conv.i8 | قم بالتحويل إلى int64 ، ثم قم بدفع int64 إلى المكدس. | التعليمات الأساسية |
| 0xD4 | conv.ovf.i | قم بالتحويل إلى عدد صحيح أصلي ( على المكدس كعدد صحيح أصلي ) وقم برمي استثناء عند تجاوز التدفق . | التعليمات الأساسية |
| 0x8A | conv.ovf.i.un | قم بتحويل unsigned إلى عدد صحيح أصلي (على المكدس كعدد صحيح أصلي ) وقم برمي استثناء عند تجاوز التدفق . | التعليمات الأساسية |
| 0xB3 | conv.ovf.i1 | قم بالتحويل إلى int8 (على المكدس كـ int32 ) وقم برمي استثناء عند تجاوز التدفق . | التعليمات الأساسية |
| 0x82 | conv.ovf.i1.un | قم بتحويل unsigned إلى int8 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0xB5 | conv.ovf.i2 | قم بالتحويل إلى int16 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x83 | conv.ovf.i2.un | قم بتحويل unsigned إلى int16 (على المكدس كـ int32) وقم برمي استثناء عند تجاوز السعة. | التعليمات الأساسية |
| 0xB7 | conv.ovf.i4 | قم بالتحويل إلى int32 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x84 | conv.ovf.i4.un | قم بتحويل unsigned إلى int32 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0xB9 | conv.ovf.i8 | قم بالتحويل إلى int64 (على المكدس كـ int64) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x85 | conv.ovf.i8.un | قم بتحويل unsigned إلى int64 (على المكدس كـ int64) وقم برمي استثناء عند تجاوز السعة. | التعليمات الأساسية |
| 0xD5 | conv.ovf.u | قم بالتحويل إلى عدد صحيح غير موقع أصلي (على المكدس كعدد صحيح أصلي) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x8B | conv.ovf.u.un | قم بتحويل unsigned إلى عدد صحيح غير موقع أصلي (على المكدس كعدد صحيح أصلي) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0xB4 | conv.ovf.u1 | قم بالتحويل إلى عدد صحيح غير موقع من النوع int8 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x86 | conv.ovf.u1.un | قم بتحويل unsigned إلى unsigned int8 (على المكدس كـ int32) وقم برمي استثناء عند تجاوز السعة. | التعليمات الأساسية |
| 0xB6 | conv.ovf.u2 | قم بالتحويل إلى عدد صحيح غير موقع من نوع int16 (على المكدس كعدد صحيح من نوع int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x87 | conv.ovf.u2.un | قم بتحويل unsigned إلى unsigned int16 (على المكدس كـ int32) وقم برمي استثناء عند تجاوز السعة. | التعليمات الأساسية |
| 0xB8 | conv.ovf.u4 | قم بالتحويل إلى عدد صحيح غير موقع من نوع int32 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x88 | conv.ovf.u4.un | قم بتحويل unsigned إلى unsigned int32 (على المكدس كـ int32) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0xBA | conv.ovf.u8 | قم بالتحويل إلى عدد صحيح غير موقع من نوع int64 (على المكدس كـ int64) وقم برمي استثناء عند حدوث تجاوز. | التعليمات الأساسية |
| 0x89 | conv.ovf.u8.un | قم بتحويل unsigned إلى unsigned int64 (على المكدس كـ int64) وقم برمي استثناء عند تجاوز السعة. | التعليمات الأساسية |
| 0x76 | conv.r.un | قم بتحويل عدد صحيح غير مُوقّع إلى عدد عشري، مع دفع F إلى المكدس. | التعليمات الأساسية |
| 0x6B | conv.r4 | قم بالتحويل إلى نوع float32، ثم قم بدفع F إلى المكدس. | التعليمات الأساسية |
| 0x6C | conv.r8 | قم بالتحويل إلى float64، ثم قم بدفع F إلى المكدس. | التعليمات الأساسية |
| 0xE0 | conv.u | قم بتحويله إلى عدد صحيح غير مُوقّع أصلي، ثم قم بدفع العدد الصحيح الأصلي إلى المكدس. | التعليمات الأساسية |
| 0xD2 | conv.u1 | قم بتحويله إلى عدد صحيح غير مُوقّع من نوع int8، ثم قم بدفع عدد صحيح من نوع int32 إلى المكدس. | التعليمات الأساسية |
| 0xD1 | conv.u2 | قم بالتحويل إلى عدد صحيح غير مُوقّع من نوع int16، ثم قم بدفع عدد صحيح من نوع int32 إلى المكدس. | التعليمات الأساسية |
| 0x6D | conv.u4 | قم بتحويل القيمة إلى عدد صحيح غير مُوقّع من نوع int32، ثم قم بدفع int32 إلى المكدس. | التعليمات الأساسية |
| 0x6E | conv.u8 | قم بتحويل القيمة إلى عدد صحيح غير مُوقّع من نوع int64، ثم قم بدفع int64 إلى المكدس. | التعليمات الأساسية |
| 0xFE 0x17 | cpblk | انسخ البيانات من الذاكرة إلى الذاكرة. | التعليمات الأساسية |
| 0x70 | cpobj <typeTok> | انسخ نوع قيمة من المصدر إلى الوجهة. | تعليمات نموذج الكائن |
| 0x5B | div | اقسم قيمتين لإرجاع ناتج القسمة أو نتيجة عددية عشرية. | التعليمات الأساسية |
| 0x5C | div.un | اقسم قيمتين، بدون إشارة، وأرجع ناتج القسمة. | التعليمات الأساسية |
| 0x25 | dup | كرر القيمة الموجودة في أعلى المكدس. | التعليمات الأساسية |
| 0xDC | endfault | إنهاء عبارة الخطأ في كتلة الاستثناء. | التعليمات الأساسية |
| 0xFE 0x11 | endfilter | إنهاء عبارة تصفية معالجة الاستثناءات. | التعليمات الأساسية |
| 0xDC | endfinally | أنهِ عبارة "finally" الخاصة بكتلة الاستثناء. | التعليمات الأساسية |
| 0xFE 0x18 | initblk | قم بتعيين جميع البايتات في كتلة من الذاكرة إلى قيمة بايت معينة. | التعليمات الأساسية |
| 0xFE 0x15 | initobj <typeTok> | قم بتهيئة القيمة عند العنوان الوجهة. | تعليمات نموذج الكائن |
| 0x75 | isinst <class> | اختبر ما إذا كان obj هو نسخة من فئة، وأرجع قيمة فارغة أو نسخة من تلك الفئة أو الواجهة. | تعليمات نموذج الكائن |
| 0x27 | jmp <method> | الخروج من الطريقة الحالية والانتقال إلى الطريقة المحددة. | التعليمات الأساسية |
| 0xFE 0x09 | ldarg <uint16 (num)> | قم بتحميل الوسيطة ذات الرقم num على المكدس. | التعليمات الأساسية |
| 0x02 | ldarg.0 | قم بتحميل الوسيط رقم 0 على المكدس. | التعليمات الأساسية |
| 0x03 | ldarg.1 | قم بتحميل الوسيط 1 على المكدس. | التعليمات الأساسية |
| 0x04 | ldarg.2 | قم بتحميل الوسيط الثاني على المكدس. | التعليمات الأساسية |
| 0x05 | ldarg.3 | قم بتحميل الوسيط الثالث على المكدس. | التعليمات الأساسية |
| 0x0E | ldarg.s <uint8 (num)> | تحميل الوسيطة المرقمة num على المكدس، باختصار. | التعليمات الأساسية |
| 0xFE 0x0A | ldarga <uint16 (argNum)> | جلب عنوان الوسيط argNum. | التعليمات الأساسية |
| 0x0F | ldarga.s <uint8 (argNum)> | جلب عنوان الوسيط argNum، بصيغة مختصرة. | التعليمات الأساسية |
| 0x20 | ldc.i4 <int32 (num)> | قم بدفع رقم من النوع int32 إلى المكدس كـ int32. | التعليمات الأساسية |
| 0x16 | ldc.i4.0 | ادفع 0 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x17 | ldc.i4.1 | ادفع 1 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x18 | ldc.i4.2 | ادفع الرقم 2 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x19 | ldc.i4.3 | قم بدفع الرقم 3 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x1A | ldc.i4.4 | قم بدفع الرقم 4 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x1B | ldc.i4.5 | قم بدفع الرقم 5 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x1C | ldc.i4.6 | قم بدفع الرقم 6 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x1D | ldc.i4.7 | قم بدفع الرقم 7 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x1E | ldc.i4.8 | قم بدفع الرقم 8 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x15 | ldc.i4.m1 | قم بدفع -1 إلى المكدس كعدد صحيح من نوع int32. | التعليمات الأساسية |
| 0x15 | ldc.i4.M1 | قم بدفع -1 إلى المكدس كـ int32 (اسم بديل لـ ldc.i4.m1). | التعليمات الأساسية |
| 0x1F | ldc.i4.s <int8 (num)> | قم بدفع الرقم إلى المكدس كعدد صحيح من نوع int32، وهو الشكل المختصر. | التعليمات الأساسية |
| 0x21 | ldc.i8 <int64 (num)> | قم بدفع رقم من النوع int64 إلى المكدس كـ int64. | التعليمات الأساسية |
| 0x22 | ldc.r4 <float32 (num)> | قم بدفع رقم من النوع float32 إلى المكدس كـ F. | التعليمات الأساسية |
| 0x23 | ldc.r8 <float64 (num)> | قم بدفع رقم من النوع float64 إلى المكدس كـ F. | التعليمات الأساسية |
| 0xA3 | ldelem <typeTok> | قم بتحميل العنصر الموجود في الفهرس أعلى المكدس. | تعليمات نموذج الكائن |
| 0x97 | ldelem.i | قم بتحميل العنصر من النوع native int في الفهرس أعلى المكدس كـ native int. | تعليمات نموذج الكائن |
| 0x90 | ldelem.i1 | قم بتحميل العنصر من النوع int8 في الفهرس أعلى المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x92 | ldelem.i2 | قم بتحميل العنصر من النوع int16 في الفهرس على الجزء العلوي من المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x94 | ldelem.i4 | قم بتحميل العنصر من النوع int32 في الفهرس على الجزء العلوي من المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x96 | ldelem.i8 | قم بتحميل العنصر من النوع int64 في الفهرس على الجزء العلوي من المكدس كـ int64. | تعليمات نموذج الكائن |
| 0x98 | ldelem.r4 | قم بتحميل العنصر من النوع float32 في الفهرس أعلى المكدس كـ F. | تعليمات نموذج الكائن |
| 0x99 | ldelem.r8 | قم بتحميل العنصر من النوع float64 في الفهرس أعلى المكدس كـ F. | تعليمات نموذج الكائن |
| 0x9A | ldelem.ref | قم بتحميل العنصر الموجود في الفهرس على الجزء العلوي من المكدس كـ O. نوع O هو نفس نوع عنصر المصفوفة التي تم دفعها إلى مكدس CIL. | تعليمات نموذج الكائن |
| 0x91 | ldelem.u1 | قم بتحميل العنصر من النوع unsigned int8 عند الفهرس إلى أعلى المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x93 | ldelem.u2 | قم بتحميل العنصر من النوع unsigned int16 عند الفهرس على الجزء العلوي من المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x95 | ldelem.u4 | قم بتحميل العنصر من النوع unsigned int32 في الفهرس على الجزء العلوي من المكدس كـ int32. | تعليمات نموذج الكائن |
| 0x96 | ldelem.u8 | قم بتحميل العنصر من النوع unsigned int64 في الفهرس أعلى المكدس كـ int64 (اسم بديل لـ ldelem.i8). | تعليمات نموذج الكائن |
| 0x8F | ldelema <class> | قم بتحميل عنوان العنصر الموجود في الفهرس على الجزء العلوي من المكدس. | تعليمات نموذج الكائن |
| 0x7B | ldfld <field> | ادفع قيمة حقل الكائن (أو نوع القيمة) obj إلى المكدس. | تعليمات نموذج الكائن |
| 0x7C | ldflda <field> | قم بدفع عنوان حقل الكائن obj إلى المكدس. | تعليمات نموذج الكائن |
| 0xFE 0x06 | ldftn <method> | قم بدفع مؤشر إلى طريقة تمت الإشارة إليها بواسطة طريقة أخرى، على المكدس. | التعليمات الأساسية |
| 0x4D | ldind.i | تحميل غير مباشر لقيمة من نوع عدد صحيح أصلي كعدد صحيح أصلي على المكدس. | التعليمات الأساسية |
| 0x46 | ldind.i1 | تحميل غير مباشر لقيمة من النوع int8 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x48 | ldind.i2 | تحميل غير مباشر لقيمة من النوع int16 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x4A | ldind.i4 | تحميل غير مباشر لقيمة من النوع int32 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x4C | ldind.i8 | تحميل غير مباشر لقيمة من النوع int64 كـ int64 على المكدس. | التعليمات الأساسية |
| 0x4E | ldind.r4 | تحميل غير مباشر لقيمة من النوع float32 كـ F على المكدس. | التعليمات الأساسية |
| 0x4F | ldind.r8 | تحميل غير مباشر لقيمة من النوع float64 كـ F على المكدس. | التعليمات الأساسية |
| 0x50 | ldind.ref | تحميل غير مباشر لقيمة من نوع مرجع الكائن كـ O على المكدس. | التعليمات الأساسية |
| 0x47 | ldind.u1 | تحميل غير مباشر لقيمة من النوع unsigned int8 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x49 | ldind.u2 | تحميل غير مباشر لقيمة من النوع unsigned int16 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x4B | ldind.u4 | تحميل غير مباشر لقيمة من النوع unsigned int32 كـ int32 على المكدس. | التعليمات الأساسية |
| 0x4C | ldind.u8 | تحميل غير مباشر لقيمة من النوع unsigned int64 كـ int64 على المكدس (اسم بديل لـ ldind.i8). | التعليمات الأساسية |
| 0x8E | ldlen | قم بدفع طول المصفوفة (من النوع الأصلي unsigned int) إلى المكدس. | تعليمات نموذج الكائن |
| 0xFE 0x0C | ldloc <uint16 (indx)> | قم بتحميل المتغير المحلي للفهرس indx على المكدس. | التعليمات الأساسية |
| 0x06 | ldloc.0 | قم بتحميل المتغير المحلي 0 على المكدس. | التعليمات الأساسية |
| 0x07 | ldloc.1 | قم بتحميل المتغير المحلي 1 على المكدس. | التعليمات الأساسية |
| 0x08 | ldloc.2 | قم بتحميل المتغير المحلي رقم 2 على المكدس. | التعليمات الأساسية |
| 0x09 | ldloc.3 | قم بتحميل المتغير المحلي رقم 3 على المكدس. | التعليمات الأساسية |
| 0x11 | ldloc.s <uint8 (indx)> | تحميل المتغير المحلي للفهرس indx على المكدس، باختصار. | التعليمات الأساسية |
| 0xFE 0x0D | ldloca <uint16 (indx)> | قم بتحميل عنوان المتغير المحلي ذي الفهرس indx. | التعليمات الأساسية |
| 0x12 | ldloca.s <uint8 (indx)> | تحميل عنوان المتغير المحلي باستخدام الفهرس indx، وهو اختصار. | التعليمات الأساسية |
| 0x14 | ldnull | قم بدفع مرجع فارغ إلى المكدس. | التعليمات الأساسية |
| 0x71 | ldobj <typeTok> | انسخ القيمة المخزنة في العنوان src إلى المكدس. | تعليمات نموذج الكائن |
| 0x7E | ldsfld <field> | قم بدفع قيمة الحقل الثابت إلى المكدس. | تعليمات نموذج الكائن |
| 0x7F | ldsflda <field> | قم بدفع عنوان الحقل الثابت، field، إلى المكدس. | تعليمات نموذج الكائن |
| 0x72 | ldstr <string> | قم بإضافة كائن سلسلة نصية للسلسلة النصية الحرفية. | تعليمات نموذج الكائن |
| 0xD0 | ldtoken <token> | قم بتحويل رمز البيانات الوصفية إلى تمثيله في وقت التشغيل. | تعليمات نموذج الكائن |
| 0xFE 0x07 | ldvirtftn <method> | قم بدفع عنوان الطريقة الافتراضية إلى المكدس. | تعليمات نموذج الكائن |
| 0xDD | leave <int32 (target)> | الخروج من منطقة محمية من التعليمات البرمجية. | التعليمات الأساسية |
| 0xDE | leave.s <int8 (target)> | الخروج من منطقة محمية من التعليمات البرمجية، باختصار. | التعليمات الأساسية |
| 0xFE 0x0F | localloc | قم بتخصيص مساحة من مجمع الذاكرة المحلية. | التعليمات الأساسية |
| 0xC6 | mkrefany <class> | قم بدفع مرجع مكتوب إلى مؤشر من نوع فئة إلى المكدس. | تعليمات نموذج الكائن |
| 0x5A | mul | اضرب القيم. | التعليمات الأساسية |
| 0xD8 | mul.ovf | اضرب قيم الأعداد الصحيحة الموقعة. يجب أن تتناسب النتيجة الموقعة مع نفس الحجم. | التعليمات الأساسية |
| 0xD9 | mul.ovf.un | اضرب قيم الأعداد الصحيحة غير الموقعة. يجب أن تتناسب النتيجة غير الموقعة مع نفس الحجم. | التعليمات الأساسية |
| 0x65 | neg | انفي القيمة. | التعليمات الأساسية |
| 0x8D | newarr <etype> | أنشئ مصفوفة جديدة بعناصر من النوع etype. | تعليمات نموذج الكائن |
| 0x73 | newobj <ctor> | قم بتخصيص كائن أو نوع قيمة غير مهيأ واستدعِ الدالة البانية. | تعليمات نموذج الكائن |
| 0xFE 0x19 | لا. { التدقيق الإملائي، فحص المدى، التحقق من القيمة الفارغة } | يمكن/يجب تخطي فحص (فحوصات) الخطأ المحددة التي يتم إجراؤها عادةً كجزء من تنفيذ التعليمات اللاحقة. | بادئة للتعليمات |
| 0x00 | nop | لا تفعل شيئًا ( لا عملية ) . | التعليمات الأساسية |
| 0x66 | not | المكمل الثنائي. | التعليمات الأساسية |
| 0x60 | or | ينتج عن عملية OR الثنائية لقيمتين صحيحتين عدد صحيح عدد صحيح. | التعليمات الأساسية |
| 0x26 | pop | اسحب القيمة من المكدس. | التعليمات الأساسية |
| 0xFE 0x1E | readonly. | حدد أن عملية عنوان المصفوفة اللاحقة لا تقوم بإجراء فحص للنوع في وقت التشغيل، وأنها تُرجع مؤشرًا مُدارًا قابلًا للتغيير بشكل متحكم فيه. | بادئة للتعليمات |
| 0xFE 0x1D | refanytype | قم بدفع رمز النوع المخزن في مرجع مكتوب. | تعليمات نموذج الكائن |
| 0xC2 | refanyval <type> | قم بدفع العنوان المخزن في مرجع مكتوب. | تعليمات نموذج الكائن |
| 0x5D | rem | تذكر عند قسمة قيمة على أخرى. | التعليمات الأساسية |
| 0x5E | rem.un | ملاحظة : عند قسمة قيمة غير موقعة على أخرى. | التعليمات الأساسية |
| 0x2A | ret | يتم إرجاع القيمة من الدالة، ربما مع قيمة. | التعليمات الأساسية |
| 0xFE 0x1A | rethrow | أعد طرح الاستثناء الحالي. | تعليمات نموذج الكائن |
| 0x62 | shl | قم بإزاحة عدد صحيح إلى اليسار (بإزاحة الأصفار)، ثم أعد عددًا صحيحًا. | التعليمات الأساسية |
| 0x63 | shr | قم بإزاحة عدد صحيح إلى اليمين (إزاحة الإشارة)، ثم أعد عددًا صحيحًا. | التعليمات الأساسية |
| 0x64 | shr.un | قم بإزاحة عدد صحيح إلى اليمين (إزاحة الصفر)، ثم أعد عددًا صحيحًا. | التعليمات الأساسية |
| 0xFE 0x1C | sizeof <typeTok> | قم بدفع حجم نوع معين بالبايت كعدد صحيح غير موقع من نوع int32. | تعليمات نموذج الكائن |
| 0xFE 0x0B | starg <uint16 (num)> | قم بتخزين القيمة في الوسيطة المرقمة num. | التعليمات الأساسية |
| 0x10 | starg.s <uint8 (num)> | قيمة التخزين للوسيط المرقم num ، الشكل المختصر . | التعليمات الأساسية |
| 0xA4 | stelem <typeTok> | استبدل عنصر المصفوفة الموجود في الفهرس بالقيمة الموجودة في المكدس. | تعليمات نموذج الكائن |
| 0x9B | stelem.i | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة العدد الصحيح الأصلية الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0x9C | stelem.i1 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة int8 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0x9D | stelem.i2 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة int16 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0x9E | stelem.i4 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة int32 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0x9F | stelem.i8 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة int64 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0xA0 | stelem.r4 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة float32 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0xA1 | stelem.r8 | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة float64 الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0xA2 | stelem.ref | استبدل عنصر المصفوفة الموجود في الفهرس بقيمة المرجع الموجودة على المكدس. | تعليمات نموذج الكائن |
| 0x7D | stfld <field> | استبدل قيمة حقل الكائن obj بالقيمة. | تعليمات نموذج الكائن |
| 0xDF | stind.i | قم بتخزين قيمة من نوع عدد صحيح أصلي في الذاكرة عند العنوان المحدد. | التعليمات الأساسية |
| 0x52 | stind.i1 | قم بتخزين قيمة من النوع int8 في الذاكرة عند العنوان المحدد. | التعليمات الأساسية |
| 0x53 | stind.i2 | قم بتخزين قيمة من النوع int16 في الذاكرة عند العنوان المحدد. | التعليمات الأساسية |
| 0x54 | stind.i4 | قم بتخزين قيمة من النوع int32 في الذاكرة عند العنوان. | التعليمات الأساسية |
| 0x55 | stind.i8 | قم بتخزين قيمة من النوع int64 في الذاكرة عند العنوان. | التعليمات الأساسية |
| 0x56 | stind.r4 | قم بتخزين قيمة من النوع float32 في الذاكرة عند العنوان المحدد. | التعليمات الأساسية |
| 0x57 | stind.r8 | قم بتخزين قيمة من نوع float64 في الذاكرة عند العنوان المحدد. | التعليمات الأساسية |
| 0x51 | stind.ref | قم بتخزين قيمة من نوع مرجع الكائن (النوع O) في الذاكرة عند العنوان. | التعليمات الأساسية |
| 0xFE 0x0E | stloc <uint16 (indx)> | قم بسحب قيمة من المكدس إلى المتغير المحلي indx. | التعليمات الأساسية |
| 0x0A | stloc.0 | قم بإخراج قيمة من المكدس إلى المتغير المحلي 0. | التعليمات الأساسية |
| 0x0B | stloc.1 | قم بإخراج قيمة من المكدس إلى المتغير المحلي 1. | التعليمات الأساسية |
| 0x0C | stloc.2 | قم بإخراج قيمة من المكدس إلى المتغير المحلي 2. | التعليمات الأساسية |
| 0x0D | stloc.3 | قم بإخراج قيمة من المكدس إلى المتغير المحلي 3. | التعليمات الأساسية |
| 0x13 | stloc.s <uint8 (indx)> | قم بسحب قيمة من المكدس إلى المتغير المحلي indx، باختصار. | التعليمات الأساسية |
| 0x81 | stobj <typeTok> | قم بتخزين قيمة من النوع typeTok في عنوان معين. | تعليمات نموذج الكائن |
| 0x80 | stsfld <field> | استبدل قيمة الحقل الثابت بالقيمة val. | تعليمات نموذج الكائن |
| 0x59 | sub | اطرح القيمة الثانية من القيمة الأولى، لتحصل على قيمة جديدة. | التعليمات الأساسية |
| 0xDA | sub.ovf | اطرح عددًا صحيحًا أصليًا من عدد صحيح أصلي آخر. يجب أن تتناسب النتيجة الموقعة مع نفس الحجم. | التعليمات الأساسية |
| 0xDB | sub.ovf.un | اطرح عددًا صحيحًا غير مُوقّع من عدد صحيح غير مُوقّع. يجب أن يكون الناتج غير المُوقّع بنفس الحجم. | التعليمات الأساسية |
| 0x45 | switch <uint32, int32, int32 (t1..tN)> | انتقل إلى إحدى قيم n. | التعليمات الأساسية |
| 0xFE 0x14 | tail. | يؤدي الاستدعاء اللاحق إلى إنهاء الطريقة الحالية. | بادئة للتعليمات |
| 0x7A | throw | قم برمي استثناء. | تعليمات نموذج الكائن |
| 0xFE 0x12 | unaligned. (alignment) | قد تكون تعليمات المؤشر اللاحقة غير محاذية . | بادئة للتعليمات |
| 0x79 | unbox <valuetype> | استخرج نوع القيمة من الكائن obj، وتمثيله المعبأ، وادفع مؤشرًا مُدارًا قابلًا للتغيير المتحكم فيه إلى أعلى المكدس. | تعليمات نموذج الكائن |
| 0xA5 | unbox.any <typeTok> | استخرج نوع القيمة من الكائن obj، وتمثيله المعبأ، وانسخه إلى أعلى المكدس. | تعليمات نموذج الكائن |
| 0xFE 0x13 | volatile. | تكون الإشارة اللاحقة للمؤشر متقلبة . | بادئة للتعليمات |
| 0x61 | xor | عملية XOR الثنائية للقيم الصحيحة، تُرجع عددًا صحيحًا. | التعليمات الأساسية |
انظر أيضاً
- لغة الوسيط المشتركة هي لغة التجميع التي تستخدم مجموعة التعليمات.
- البنية التحتية للغة المشتركة هي المعيار الذي يتم فيه تعريف اللغة الوسيطة المشتركة.
- إطار عمل .NET هو منصة وتطبيق للبنية التحتية للغة المشتركة.
- Mono هو تطبيق مفتوح المصدر ومتعدد المنصات للبنية التحتية للغة المشتركة.
مراجع
- مجموعة تعليمات CIL في C# Online.NET (CSharp-Online.NET)
- مجموعة تعليمات ECMA - CIL - الصفحة 321 (ECMA-335.pdf)
فئات :
- البنية التحتية للغة المشتركة
- قوائم مجموعة التعليمات
