رمز العملية

في مجال الحوسبة ، يُعرف رمز العملية ( opcode ) [ 1 ] [ 2 ] بأنه قيمة مُعدّدة تُحدد العملية المطلوب تنفيذها. تُستخدم رموز العمليات في الأجهزة مثل وحدات الحساب والمنطق (ALUs) ووحدات المعالجة المركزية (CPUs) ومجموعات تعليمات البرامج. في وحدات الحساب والمنطق، يُطبق رمز العملية مباشرةً على الدوائر عبر ناقل إشارة الإدخال. أما في وحدات المعالجة المركزية، فيُمثل رمز العملية جزءًا من تعليمات لغة الآلة التي تُحدد العملية المطلوب تنفيذها.

وحدات المعالجة المركزية

توجد رموز العمليات في تعليمات لغة الآلة لوحدات المعالجة المركزية، وكذلك في بعض أجهزة الحوسبة المجردة . في وحدات المعالجة المركزية، يُشار إلى رمز العملية بمصطلحات مثل: رمز آلة التعليمات ، [ 3 ] رمز التعليمات ، [ 4 ] مقطع التعليمات ، [ 5 ] [ 6 ] [ 7 ] [ 8 ] حزمة التعليمات، أو سلسلة العمليات . [ 9 ] [ 2 ] بالنسبة لأي معالج معين (سواء كان وحدة معالجة مركزية عامة أو وحدة معالجة متخصصة)، تُحدد رموز العمليات بواسطة بنية مجموعة تعليمات المعالج (ISA). [ 10 ] ويمكن وصفها باستخدام جدول رموز العمليات . تشمل أنواع العمليات الحسابية ، ونسخ البيانات، والعمليات المنطقية ، والتحكم في البرنامج، والتعليمات الخاصة (مثل CPUID ). [ 10 ]

بالإضافة إلى رمز العملية، تحدد العديد من التعليمات البيانات (المعروفة بالمعاملات ) التي ستُنفذ عليها العملية، مع العلم أن بعض التعليمات قد تحتوي على معاملات ضمنية أو لا تحتوي على أي معاملات. [ 10 ] تتميز بعض مجموعات التعليمات بحقول موحدة تقريبًا لرمز العملية ومحددات المعاملات، بينما تتميز مجموعات أخرى (مثل بنية x86 ) ببنية أقل توحيدًا ومتغيرة الطول. [ 10 ] [ 11 ] يمكن توسيع مجموعات التعليمات من خلال بادئات رمز العملية ، والتي تضيف مجموعة فرعية من التعليمات الجديدة المكونة من رموز عمليات موجودة تلي تسلسلات بايت محجوزة. [ 12 ]

جدول رموز العمليات النموذجي

يوضح هذا الجدول رموز العمليات لمعالج دقيق بسيط من 8 بت، وهو معالج Intel 8008 من عام 1972.

يبلغ طول كل رمز عملية 8 بتات . ويُعرض كل رمز كنمط ثنائي من الأصفار والآحاد في عمود رمز العملية . يمكن تضمين حقلين إضافيين كحد أقصى في رمز العملية. بعض الحقول المكونة من 3 بتات تحمل التسميات DDD وSSS وCC وALU. يحدد الحقلان SSS (المصدر) وDDD (الوجهة) أحد سجلات أو ذاكرة 8008 الثمانية الممكنة: A أو B أو C أو D أو E أو H أو L أو M. يحدد الحقل CC أحد شروط النتائج الثمانية التي تُفعّل بعض تعليمات JMP وCAL وRET. يحدد الحقل ALU إحدى وظائف وحدة الحساب والمنطق الثمانية الممكنة التي تُنفذ أثناء تنفيذ التعليمات، وهي: الجمع، والجمع مع الحمل، والطرح، والطرح مع الاستعارة، وAND المنطقية، وXOR المنطقية، وOR المنطقية، والمقارنة. يشير الحرف X في بعض الحقول إلى إمكانية إدخال 1 أو 0 دون أي تأثير .

تُدمج القيم الثابتة (أصفار وواحدات) مع حقول المعاملات لتكوين رمز العملية ذي 8 بت. بالإضافة إلى ذلك، قد تتطلب التعليمات الكاملة بايتًا أو بايتين إضافيين من المعاملات . تظهر هذه المعاملات في العمود الرئيسي الثاني من الجدول، والمسمى " المعاملات" . إذا لم تكن هناك حاجة إلى معاملات، يُملأ العمود بشرطة ( -- ).

بما أن تذكر الأصفار والآحاد أمر صعب، فإن عمود التذكير يعرض رمزًا حرفيًا قصيرًا وسهل التذكر يمكن لمبرمج لغة التجميع استخدامه لاستدعاء رمز العملية المطلوب.

يُظهر عمود الوصف الوظيفة التي يؤديها المعالج الدقيق عندما يصادف رمز عملية معين.

رمز العمليةالمعاملاتذاكريوصف
76543210ب2ب3
0000000XHLTوقف
00DDD000الرقم الدولي للروبية الهنديةDDD ← DDD + 1 (باستثناء A و M)
00DDD001DCrDDD ← DDD - 1 (باستثناء A و M)
00000010RLCA 1-7 ← A 0-6 ; A 0 ← Cy ← A 7
00نسخة011Rcc (RET conditional)إذا كانت قيمة cc صحيحة، فإن P ← (مكدس)
00ألو100بياناتبيانات ADI ACI SUI SBI NDI XRI ORI CPIبيانات [عملية وحدة الحساب والمنطق] A ← A
00شمال101RST n(مكدس) ← P، P ← N × 8
00DDD110بياناتبيانات LrI (تحميل r بالبيانات الفورية)DDD ← بيانات
00XXX111متقاعدP ← (مكدس)
00001010RRCA 0-6 ← A 1-7 ; A 7 ← Cy ← A 0
00010010RALA 1-7 ← A 0-6 ; Cy ← A 7 ; A 0 ← Cy
00011010ملف RARA 0-6 ← A 1-7 ; Cy ← A 0 ; A 7 ← Cy
01نسخة000أدلوأدهيJcc add (JMP conditional)إذا كانت قيمة cc صحيحة، فإن P ← إضافة
0100ميناء1ميناء INPA ← منفذ (المنافذ من 0 إلى 7 فقط)
01ميناء1منفذ الخروجالمنفذ ← أ (المنافذ من 8 إلى 31 فقط)
01نسخة010أدلوأدهيCcc add (CAL conditional)إذا كانت قيمة cc صحيحة، فإن (المكدس) ← P، و P ← إضافة
01XXX100أدلوأدهيJMP إضافةP ← إضافة
01XXX110أدلوأدهيإضافة سعرات حرارية(مكدس) ← P، P ← إضافة
10ألوSSSADr Acr SUr SBr NDr XRr ORr CprA ← A [عملية وحدة الحساب والمنطق] SSS
11DDDSSSLds (حمل d مع s)DDD ← SSS
11111111HLTوقف
76543210ب2ب3ذاكريوصف
SSS DDD210نسخةألو
أ000FC، C خطأADr ADI (A ← A + arg)
ب001FZ، Z خطأACr ACI (A ← A + arg + Cy)
ج010FS، خطأ SSUr SUI (A ← A - arg)
د011FP، P فرديSBr SBI (A ← A - arg - Cy)
هـ100TC، C صحيحNDr NDI (A ← A ∧ arg)
ح101TZ، Z صحيحXRr XRI (A ← A ⊻ arg)
ل110TS، S صحيحORr ORI (A ← A ∨ arg)
م111TP، P حتىCPr CPI (A - arg)
SSS DDD210نسخةألو

مجموعات تعليمات البرامج

يمكن العثور على رموز العمليات في رموز البايت وغيرها من التمثيلات المُخصصة للتنفيذ بواسطة مُفسِّرات البرامج. غالبًا ما تستخدم هذه الرموز أنواع بيانات وعمليات ذات مستوى أعلى قليلًا من تلك الموجودة في رموز العمليات الخاصة بالأجهزة، ولكنها مع ذلك تُبنى على أسس مماثلة. تشمل الأمثلة رمز البايت الموجود في ملفات فئات جافا ، والذي تُفسِّره آلات جافا الافتراضية ، ورمز البايت المُستخدم في GNU Emacs لرمز Lisp المُجمَّع ، ولغة NET الوسيطة المشتركة . [ 13 ]

انظر أيضاً

مراجع

  1. بارون، ديفيد ويليام (1978) [1971، 1969]. "2.1. التعليمات الرمزية". كُتبت في جامعة ساوثهامبتون ، ساوثهامبتون، المملكة المتحدة. في فلوريتين، ج. جون (محرر). المُجمِّعات والمُحمِّلات . دراسات حاسوبية (  الطبعة الثالثة). نيويورك، الولايات المتحدة الأمريكية: إلسيفير نورث هولاند. ص  7. ISBN 0-444-19462-2. إل سي سي إن 78-19961 . (12+100 صفحة)
  2. 1 2 تشيبا، شيغيرو (2007) [1999]. "جافاسيست، مجموعة أدوات ترجمة بايت كود جافا" . مؤرشف من الأصل في 2020-03-02 . تم الاسترجاع في 2016-05-27 .
  3. "الملحق ب - رموز تعليمات الآلة" (ملف PDF) . دليل برمجة لغة التجميع MCS-4 - دليل برمجة نظام الحاسوب الصغير INTELLEC 4 ( طبعة أولية). سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . ديسمبر 1973. الصفحات من ب-1 إلى ب-8 . MCS-030-1273-1. مؤرشف (ملف PDF) من الأصل بتاريخ 1 مارس 2020. تم الاطلاع عليه بتاريخ 2 مارس 2020 .  
  4. رافائيل، هوارد أ.، محرر. (نوفمبر 1974). "وظائف الحاسوب: سجل التعليمات ووحدة فك التشفير" (ملف PDF) . دليل مستخدم MCS-40 لمصممي الدوائر المنطقية . سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . ص. 8. مؤرشف (ملف PDF) من الأصل بتاريخ 2020-03-03 . تم الاسترجاع بتاريخ 2020-03-03 . [...] تُعرَّف كل عملية يمكن للمعالج تنفيذها برقم ثنائي فريد يُعرف برمز التعليمات. [...] 
  5. جونز، دوغلاس و. (يونيو 1988). "معالج CISC مصغر" . أخبار هندسة الحاسوب الصادرة عن جمعية ACM SIGARCH . 16 (3). نيويورك، الولايات المتحدة الأمريكية: جمعية آلات الحوسبة (ACM): 56-63 . doi : 10.1145/48675.48684 . S2CID 17280173 . 
  6. ^ دوماجالا ، لوكاس (2012). "7.1.4. مجموعة المعايير" . تطبيق CLP على جدولة وحدات التعليمات لمعالجات VLIW . جليفيتش، بولندا: استوديو جاسيك سكالميرسكي للكمبيوتر. ص 80-83 [83]. رقم ISBN  978-83-62652-42-6أُرشف من المصدر الأصلي بتاريخ 2020-03-02 . تم الاطلاع عليه بتاريخ 2016-05-28 .
  7. سموثرمان، مارك (2016) [2013]. "مشكلة التعليمات المتعددة" . كلية علوم الحاسوب، جامعة كليمسون. مؤرشف من الأصل بتاريخ 28-05-2016 . تم الاسترجاع بتاريخ 28-05-2016 .
  8. جونز، دوغلاس و. (2016) [2012]. "نموذج CISC مصغر" . مجموعة هندسة الحاسوب على الإنترنت . مدينة آيوا، الولايات المتحدة الأمريكية: جامعة آيوا ، قسم علوم الحاسوب. مؤرشف من الأصل في 2020-03-02 . تم الاسترجاع في 2016-05-28 .
  9. شولمان، أندرو (1 يوليو 2005). "إيجاد نسخ ثنائية باستخدام سلاسل العمليات وملخصات الدوال" . مجلة دكتور دوبز . الجزء الأول. المجلد 30، العدد 7. سي إم بي ميديا ​​ذ.م.م. الصفحات 69-73 . الرقم الدولي الموحد للدوريات 1044-789X . #374. مؤرشف من الأصل في 2 مارس 2020. تم الاسترجاع في 2 مارس 2020 .    شولمان ، أندرو (1 أغسطس 2005). "إيجاد نسخ ثنائية باستخدام سلاسل العمليات وملخصات الدوال" . مجلة دكتور دوبز . الجزء الثاني. المجلد 30، العدد 8. سي إم بي ميديا ​​ذ.م.م. الصفحات 56-61 . الرقم الدولي الموحد للدوريات 1044-789X . #375. مؤرشف من الأصل في 2 مارس 2020. تم الاسترجاع في 28 مايو 2016 .    شولمان ، أندرو (1 سبتمبر 2005). "إيجاد نسخ ثنائية باستخدام سلاسل العمليات وملخصات الدوال" . سي إم بي ميديا ​​ذ.م.م. الجزء الثالث. المجلد 30، العدد 9. يونايتد بيزنس ميديا . الصفحات 64-70 . الرقم الدولي الموحد للدوريات 1044-789X . رقم 376. مؤرشف من الأصل في 2 مارس 2020. تم الاطلاع عليه في 28 مايو 2016 .    
  10. ١ ٢ ٣ ٤ هينيسي، جون ل.؛ باترسون، ديفيد أ.؛ أسانوفيتش، كرست ؛ باكوس، جيسون د.؛ كولول، روبرت ب.؛ بهاتاشارجي، أبهيشيك؛ كونتي، توماس م.؛ دواتو، خوسيه؛ فرانكلين، ديانا؛ غولدبيرغ، ديفيد؛ جوبي، نورمان ب.؛ لي، شينغ؛ موراليمانوهار، نافين؛ بيترسون، غريغوري د.؛ بينكستون، تيموثي م.؛ رانغاناثان، بارثاساراثي؛ وود، ديفيد أ.؛ يونغ، كليف؛ زاكي، عمرو (٢٠١٧-١١-٢٣). هندسة الحاسوب: منهج كمي ( الطبعة السادسة). كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية: دار مورغان كوفمان للنشر . ISBN  978-0-12811905-1. OCLC 983459758 . 
  11. مانسفيلد، ريتشارد (1983). "مقدمة: لماذا لغة الآلة؟" . لغة الآلة للمبتدئين . كتب كومبيوت! ( الطبعة الأولى). غرينسبورو، كارولاينا الشمالية، الولايات المتحدة الأمريكية: منشورات كومبيوت!، وشركات البث الأمريكية، وخدمات الأنظمة الصغيرة . رقم ISBN  0-942386-11-6أُرشف من المصدر الأصلي بتاريخ 13 فبراير 2008. تم الاطلاع عليه بتاريخ 28 مايو 2016 .
  12. تانينباوم، أندرو س؛ أوستن، تود (2013). تنظيم الحاسوب الهيكلي ( الطبعة السادسة). بيرسون للتعليم، ص 367. ISBN   0-13-291652-5.
  13. "تعريف البايت كود" . مجلة الكمبيوتر الشخصي . موسوعة مجلة الكمبيوتر الشخصي. مؤرشف من الأصل بتاريخ 2012-10-06 . تم الاطلاع عليه بتاريخ 2015-10-10 .