بنية PDP-11

تُعدّ بنية PDP -11 [ 1 ] بنيةً لمجموعة تعليمات CISC ذات 16 بت ، طوّرتها شركة Digital Equipment Corporation (DEC). وتُستخدم هذه البنية في وحدات المعالجة المركزية (CPUs) والمعالجات الدقيقة في الحواسيب الصغيرة PDP-11 . وقد شاع استخدامها خلال سبعينيات القرن العشرين، إلا أنها تراجعت أمام بنية VAX الأكثر قوةً في ثمانينيات القرن نفسه.

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

تحتوي وحدة المعالجة المركزية على ثمانية سجلات عامة الأغراض ذات 16 بت (من R0 إلى R7). السجل R7 هو عداد البرنامج (PC). على الرغم من إمكانية استخدام أي سجل كمؤشر للمكدس، إلا أن R6 هو مؤشر المكدس (SP) المستخدم للمقاطعات والتحذيرات الخاصة بالأجهزة. غالبًا ما يُستخدم R5 للإشارة إلى إطار استدعاء الإجراء الحالي. لتسريع تبديل السياق، توفر بعض طرازات PDP-11 مجموعتين من السجلات R0-R5. تحتوي أوضاع النواة، والمشرف (إن وُجد)، والمستخدم على خرائط ذاكرة منفصلة، ​​وكذلك مؤشرات مكدس منفصلة (بحيث لا يستطيع برنامج المستخدم التسبب في خلل في النظام عن طريق تخزين قيمة غير صالحة في سجل مؤشر المكدس).

ذاكرة

تنسيقات البيانات

أصغر وحدة للذاكرة القابلة للعنونة والكتابة هي البايت ذو 8 بت . ويمكن أيضاً تخزين البايتات في النصف السفلي من المسجلات من R0 إلى R5.

تُخزَّن الكلمات ذات 16 بت بنظام الترتيب الصغير (little-endian) ، حيث تكون البايتات الأقل أهمية في العنوان الأدنى. وتكون الكلمات محاذية دائمًا لعناوين الذاكرة الزوجية. ويمكن تخزين الكلمات في المسجلات من R0 إلى R7.

لا يمكن تخزين الكلمات المزدوجة ذات 32 بت في مجموعة التعليمات الموسعة (EIS) إلا في أزواج من المسجلات، حيث تُخزن الكلمة ذات الرقم الأعلى في المسجل ذي الرقم الأدنى. وتُستخدم الكلمات المزدوجة في تعليمات الضرب (MUL) والقسمة (DIV) والجمع (ASHC). وتُدعم بيانات أخرى ذات 32 بت كامتدادات للبنية الأساسية: تُخزن بيانات الفاصلة العائمة أحادية الدقة في مجموعة تعليمات الفاصلة العائمة (FIS) ومجموعة تعليمات خيار معالج الفاصلة العائمة (FPP) للطرازين 11/45 ومعظم الطرازات اللاحقة، بالإضافة إلى البيانات الطويلة في مجموعة التعليمات التجارية (CIS)، بأكثر من تنسيق واحد، بما في ذلك تنسيق النهاية الوسطى غير المألوف [ 2 ] [ 3 ] والذي يُشار إليه أحيانًا باسم "PDP-endian".

يدعم خيار FPP تنسيق الفاصلة العائمة مزدوج الدقة 64 بت.

إدارة الذاكرة

يمكن لعناوين PDP-11 ذات 16 بت عنونة 64 كيلوبايت . وبحلول الوقت الذي حلّت فيه VAX محل PDP-11، أصبحت البايتات ذات 8 بت والتدوين الست عشري معيارًا في الصناعة؛ ومع ذلك، تستخدم القيم العددية على PDP-11 دائمًا التدوين الثماني، ويتم التعبير عن مقدار الذاكرة المتصلة بـ PDP-11 دائمًا بعدد الكلمات. تبلغ مساحة العناوين المنطقية الأساسية 32 ألف كلمة، لكن الجزء العلوي من مساحة العناوين الفيزيائية البالغ 4 كيلوبايت (العناوين من 160000 إلى 177777 في حالة عدم وجود إدارة للذاكرة) لا يتم ملؤه لأن سجلات الإدخال/الإخراج على الناقل تستجيب للعناوين في هذا النطاق. لذلك، في الأصل، كان لدى PDP-11 الموسع بالكامل 28 ألف كلمة، أو 56 كيلوبايت بالمصطلحات الحديثة. 

يحجز المعالج عناوين ذاكرة منخفضة لمتجهات ثنائية الكلمات، تُحدد عداد البرنامج وكلمة حالة المعالج لبدء روتين خدمة. عندما يُقاطع جهاز إدخال/إخراج برنامجًا، فإنه يضع عنوان متجهه على ناقل البيانات لتحديد روتين الخدمة الذي يجب أن يتولى التحكم. تُستخدم المتجهات الأدنى في روتينات الخدمة لمعالجة أنواع مختلفة من الأخطاء. تحدث هذه الأخطاء عند بعض أخطاء البرنامج، مثل محاولة تنفيذ تعليمة غير مُعرَّفة؛ وأيضًا عندما يُنفذ البرنامج تعليمة مثل BPT أو EMT أو IOT أو TRAP لطلب خدمة من نظام التشغيل.

توسيع الذاكرة

بحلول عام 1975، أصبحت مساحة العناوين المنطقية ذات الـ 16 بت في جهاز PDP-11 عائقًا متزايدًا. [ 4 ] وقد استُخدمت تقنيات مختلفة للتغلب على هذا العائق:

  • تتضمن معالجات PDP-11 من الطرازات الأحدث إدارة للذاكرة تدعم العنونة الافتراضية . تم توسيع مساحة العناوين الفيزيائية إلى 18 أو 22  بت، مما يسمح باستخدام ذاكرة وصول عشوائي (RAM) تصل إلى 256  كيلوبايت أو 4  ميجابايت. أما مساحة العناوين المنطقية (أي مساحة العناوين المتاحة في أي لحظة دون تغيير جدول تعيين الذاكرة) فتبقى محدودة بـ 16  بت.
  • يمكن ضبط بعض الطرازات، بدءًا من PDP-11/45، لاستخدام 32 كيلوبايت (64  كيلوبايت) كمساحة لتعليمات البرنامج، و32 كيلوبايت أخرى كمساحة للبيانات. وتعتمد بعض أنظمة التشغيل - ولا سيما يونكس منذ الإصدار V7، وRSX11-M+ - على هذه الميزة.
  • يمكن لتقنيات البرمجة، مثل تراكب كتلة من التعليمات أو البيانات المخزنة مع كتلة أخرى حسب الحاجة، إخفاء مشكلات الترحيل عن مبرمج التطبيق. على سبيل المثال، يُنتج مُترجم Modula-2 شيفرةً يقوم نظام التشغيل بموجبها بتبديل  صفحات بحجم 8 كيلوبايت إلى الذاكرة عند حصول الإجراءات الفردية على التحكم. [ 5 ]

أنماط العنونة

تخصص معظم التعليمات ستة بتات لتحديد المعامل. ثلاثة بتات تحدد أحد أوضاع العنونة الثمانية، وثلاثة بتات تحدد سجلًا عامًا.

يكون ترميز  وضع عنونة المعاملات ذي الست بتات كما يلي:

5320
وضعيسجل

في الأقسام التالية، يتضمن كل عنصر مثالاً لكيفية كتابة المعامل بلغة التجميع. Rn تعني أحد السجلات الثمانية، المكتوبة من R0 إلى R7.

أنماط عنونة السجلات العامة

يمكن تطبيق الأوضاع الثمانية التالية على أي سجل عام. وسيتم توضيح تأثيراتها عند تطبيقها على R6 (مؤشر المكدس، SP) وR7 (عداد البرنامج، PC) بشكل منفصل في الأقسام التالية.

شفرةاسممثالوصف
تشغيليسجلممرضة مسجلةالمعامل موجود في Rn
تم تأجيل التسجيل(Rn)يحتوي Rn على عنوان المعامل
الزيادة التلقائية(Rn)+إذا كان Rn يحتوي على عنوان المعامل، فقم بزيادة Rn
الزيادة التلقائية المؤجلة@(Rn)+إذا كان Rn يحتوي على عنوان المعامل، فقم بزيادة Rn بمقدار 2
التناقص التلقائي−(Rn)قم بإنقاص قيمة Rn، ثم استخدم النتيجة كعنوان للمعامل.
تأجيل الإنقاص التلقائي@−(Rn)قم بإنقاص قيمة Rn بمقدار 2، ثم استخدم النتيجة كعنوان لعنوان المعامل
فِهرِسX(Rn)Rn+X هو عنوان المعامل
تم تأجيل الفهرس@X(Rn)Rn+X هو عنوان عنوان المعامل

في نمطي الفهرسة والفهرسة المؤجلة، تكون X قيمةً مكونةً من 16 بت مأخوذةً من الكلمة الثانية للتعليمات. في التعليمات ذات المعاملين، يمكن استخدام هذين النمطين مع كلا المعاملين. تتكون هذه التعليمات من ثلاث كلمات.

تتم عمليات الزيادة التلقائية والنقصان التلقائي على السجل بمقدار 1 في تعليمات البايت، وبمقدار 2 في تعليمات الكلمة، وبمقدار 2 كلما تم استخدام الوضع المؤجل، لأن الكمية التي يعنونها السجل هي مؤشر (كلمة).

أنماط عنونة عداد البرنامج

عند تحديد R7 (عداد البرنامج)، فإن أربعة من أوضاع العنونة تُنتج بشكل طبيعي تأثيرات مفيدة:

شفرةاسممثالوصف
27مباشرفانيالمعامل هو الكلمة التالية في التعليمات
37مطلق@#aعنوان المعامل هو الكلمة التالية في التعليمات
67نسبيأعنوان المعامل هو الكلمة التالية من التعليمات المضافة إلى عداد البرنامج (PC).
77مؤجل نسبي@aعنوان عنوان المعامل هو الكلمة التالية من التعليمات المضافة إلى عداد البرنامج (PC).

الاستخدام الشائع الوحيد للوضع المطلق، الذي يجمع تركيبه بين الوضع الفوري والوضع المؤجل، هو تحديد سجلات الإدخال/الإخراج، حيث أن سجلات كل جهاز لها عناوين ذاكرة محددة. أما الوضع النسبي، فيتميز بتركيب أبسط، وهو أكثر شيوعًا للإشارة إلى متغيرات البرنامج ووجهات الانتقال. البرنامج الذي يستخدم الوضع النسبي (والوضع النسبي المؤجل) حصريًا للمراجع الداخلية يكون مستقلًا عن الموقع ؛ فهو لا يفترض أي شيء عن موقعه، لذا يمكن تحميله في أي موقع ذاكرة، أو حتى نقله، دون الحاجة إلى تعديل عناوينه لتعكس موقعه ( إعادة التموضع ). عند حساب هذه العناوين نسبةً إلى الموقع الحالي، يقوم المعالج بإعادة التموضع أثناء التنفيذ.

الوضعان الفوري والمطلق هما ببساطة وضعا الزيادة التلقائية والزيادة التلقائية المؤجلة، على التوالي، المطبقان على عداد البرنامج (PC). عندما تكون الكلمة المساعدة "ضمن التعليمات" كما هو موضح في الجدول أعلاه، يتم زيادة عداد البرنامج للتعليمات التالية تلقائيًا بعد الكلمة المساعدة. وبما أن عداد البرنامج يشير دائمًا إلى الكلمات، فإن عملية الزيادة التلقائية تكون دائمًا بمقدار 2.

أنماط عنونة المكدس

يُستخدم المسجل R6، أو SP، كمكدس مادي للمقاطعات والتدخلات. ومن المتعارف عليه في مجموعة الأوضاع التي يوفرها معالج PDP-11 أن المكدس ينمو تنازليًا - باتجاه العناوين الأدنى - عند إضافة عناصر إليه. عند تطبيق وضع معين على SP، أو على أي مسجل يختاره المبرمج لاستخدامه كمكدس برمجي، فإن أوضاع العنونة تُحدث التأثيرات التالية:

شفرةاسممثالوصف
16مؤجل(SP)يوجد المعامل في أعلى المكدس
26الزيادة التلقائية(SP)+يكون المعامل في أعلى المكدس، ثم قم بإزالته.
36الزيادة التلقائية المؤجلة@(SP)+يوجد مؤشر إلى المعامل في أعلى المكدس؛ قم بإزالة المؤشر منه.
46التناقص التلقائي−(SP)أضف قيمة إلى المكدس
66مفهرسX(SP)يقع المعامل على مسافة X من أعلى المكدس
76مؤجل مفهرس@X(SP)يوجد مؤشر إلى المعامل على بُعد X من أعلى المكدس

على الرغم من أن مكدسات البرامج قد تحتوي على بايتات، إلا أن SP عبارة عن مكدس من الكلمات. عمليات الزيادة والنقصان التلقائي على SP تتم دائمًا بمقدار 2.

مجموعة التعليمات

يعمل جهاز PDP-11 على البايتات والكلمات. تُحدد البايتات برقم سجل - يُحدد البايت الأدنى في السجل - أو بموقع في الذاكرة. تُحدد الكلمات برقم سجل أو بموقع البايت الأدنى في الذاكرة، والذي يجب أن يكون موقعًا زوجيًا. في معظم التعليمات التي تأخذ معاملات، تُضبط البتة 15 لتحديد عنونة البايت، أو تُمسح لتحديد عنونة الكلمة. في القوائم الواردة في القسمين التاليين، أضاف مبرمج لغة التجميع الحرف B إلى رمز التعليمات لتحديد عملية بايت؛ على سبيل المثال، أصبحت MOV هي MOVB.

لم يتم تنفيذ بعض التعليمات، على سبيل المثال MARK و SOB، على بعض طرازات PDP-11.

تعليمات المعامل المزدوج

تُحدد البتات الأربع العليا العملية المراد تنفيذها (حيث تُحدد البتة 15 عادةً ما إذا كان العنونة كلمة أم بايت). وتُحدد مجموعتان من ست بتات نمط عنونة معامل المصدر ونمط عنونة معامل الوجهة، كما هو مُعرّف أعلاه. وتشغل هذه المجموعة من التعليمات 75% من رموز العمليات المتاحة.

1512119865320
رمز العمليةالمصدريسجلالوجهةيسجل
رمز العمليةذاكريعملية
01فيديويتحرك:Dest ← Src

(MOVB لتسجيل الإشارة - يمتد إلى البتات من 8 إلى 15)

11MOVB
02CMPيقارن:Src − Dest
12CMBP
03قليلاختبار البتات:Src ∧ Dest
13BITB
04BICواضح قليلاً:Dest ← Dest ∧ (-1 - Src)
14BICB
05مكتب المعايير والمقاييسمجموعة البتات:Dest ← Dest ∨ Src
15BISB
06يضيفيضيف:Dest ← Dest + Src
16فرعيطرح:Dest ← Dest − Src

تستخدم تعليمات الجمع والطرح عنونة الكلمات، وليس لها اختلافات موجهة نحو البايت.

بسبب قيود التشفير، تستخدم بعض التعليمات ذات المعاملين معامل وضع العنونة ومعامل السجل:

159865320
رمز العمليةسجلالمصدر/الوجهةيسجل

عند استخدام زوج من المسجلات (يُكتب أدناه "(Reg, Reg+1)")، يحتوي المسجل الأول على الجزء الأعلى من المعامل ويجب أن يكون رقمه زوجيًا. أما المسجل التالي ذو الرقم الأعلى فيحتوي على الجزء الأدنى من المعامل (أو الباقي). ويُستثنى من ذلك تعليمة الضرب؛ إذ قد يكون Reg فرديًا، ولكن في هذه الحالة،  لا تُخزَّن أعلى 16 بت من النتيجة.

رمز العمليةذاكريعملية
070متعدد الجنسياتالضرب الموقّع:(Reg, Reg+1) ← Reg × Src
071DIVالقسمة الموقعة:Compute (Reg, Reg+1) ÷ Src; Reg ← quotient; Reg+1 ← remainder
072رمادالإزاحة الحسابية:if Src<5:0> < 0 then Reg ← Shift-right(Reg, -Src<5:0>) else Reg ← Shift-left(Reg, Src<5:0>)
073ASHCالإزاحة الحسابية المدمجة (32 بت):if Src<5:0> < 0 then (Reg, Reg+1) ← Shift-right((Reg, Reg+1), -Src<5:0>) else (Reg, Reg+1) ← Shift-left((Reg, Reg+1), Src<5:0>)
074XORحصري أو:Dest ← Dest ⊻ Reg

تعليمات ذات معامل واحد

تحدد البتات العشر العليا العملية المراد تنفيذها، حيث تحدد البتة 15 عادةً ما إذا كان العنونة تتم على مستوى البايت أم الكلمة. وتحدد مجموعة واحدة من ست بتات المعامل كما هو موضح أعلاه.

1565320
رمز العمليةالمصدر/الوجهةيسجل
رمز العمليةذاكريعملية
٠٠٠١JMPالقفز:PC ← ea(Src)
٠٠٠٣مسحةتبديل بايتات الكلمة:Dest0-7 ↔ Dest8-15
٠٠٥٠CLRواضح:Dest ← 0
1050مجلس مراجعة البناء
0051كومإطراء:Dest ← -1 - Dest
1051مشط
٠٠٥٢شركةزيادة:Dest ← Dest + 1
1052الرقابة الدولية على الرقابة
0053ديسمبرانخفاض:Dest ← Dest − 1
1053مجلس التعليم العالي
0054سلبينفي:Dest ← 0 - Dest
1054NEGB
0055محول تناظري رقميأضف حملاً:Dest ← Dest + C flag
1055بنك أبوظبي التجاري
0056SBCاطرح الحمل:Dest ← Dest - C flag
1056SBCB
0057TSTامتحان:Src ∧ Src
1057TSTB
٠٠٦٠معدل العائد على الاستثمارأدر إلى اليمين:C ← S0; S0-14 ← S1-15; S15 ← C
1060روربقم بتدوير البايت إلى اليمين:C ← S0; S0-6 ← S1-7; S7 ← C
0061دورأدر إلى اليسار:C ← S15; S1-15 ← S0-14; S0 ← C
1061رولبتدوير البايت الأيسر:C ← S7; S1-7 ← S0-6; S0 ← C
٠٠٦٢التعرف التلقائي على الكلامالإزاحة الحسابية إلى اليمين:Dest ← Dest ÷ 2
1062مجلس تسجيل الجمعيات الأمريكية (ASRB)
0063لغة الإشارة الأمريكيةالإزاحة الحسابية إلى اليسار:Dest ← Dest x 2
1063ASLB
1064MTPSالانتقال إلى قسم الرعاية الشخصية:PSW ← Src
0065MFPIانتقل من المساحة السابقة (I):−(SP) ← Src
1065MFPDالانتقال من المساحة D السابقة:−(SP) ← Src
0066MTPIانتقل إلى مساحة الحرف I السابقة:Dest ← (SP)+
1066MTPDانتقل إلى المساحة D السابقة:Dest ← (SP)+
0067SXTتمديد التوقيع:if N flag = 0 then Dest ← 0 else Dest ← -1
1067MFPSالانتقال من PSW:Dest ← PSW

تعليمات التفرع

في معظم تعليمات التفرع، يعتمد تنفيذ التفرع على حالة رموز الحالة. عادةً ما تسبق تعليمة التفرع تعليمة CMP (مقارنة) أو BIT (اختبار بت) ذات معاملين، أو تعليمة TST (اختبار) ذات معامل واحد. كما تُحدد تعليمات الحساب والمنطق رموز الحالة. على عكس معالجات إنتل في بنية x86 ، تُحدد تعليمات MOV هذه الرموز أيضًا، لذا يمكن استخدام تعليمة التفرع للتفرع بناءً على ما إذا كانت القيمة المنقولة صفرًا أم سالبة.

يُحدد البايت الأعلى في التعليمات العملية. تمثل البتات من 9 إلى 15 رمز العملية، بينما يمثل البت 8 قيمة حساب رمز الشرط الذي يؤدي إلى تنفيذ التفرع. أما البايت الأدنى فهو عبارة عن إزاحة بكلمة مُوقّعة بالنسبة إلى الموقع الحالي لعداد البرنامج. وهذا يسمح بتنفيذ التفرعات الأمامية والعكسية في التعليمات البرمجية.

159870
رمز العمليةجإزاحة
رمز العمليةجذاكريالحالة أو التشغيل
٠٠٠1BRالفرع دائماًPC ← PC + 2 × Sign-extend(Offset)
0010بريقم بالتفرع إذا لم يكن متساوياًZ = 0
0011BEQتفرع إذا كان متساوياًZ = 1
0020بي جي إيقم بالتفرع إذا كان أكبر من أو يساوي(N ⊻ V) = 0
0021بي إل تيقم بالتفرع إذا كان أقل من(N ⊻ V) = 1
0030برنامج المواهب البريطانية (BGT)قم بالتفرع إذا كان أكبر من(Z ∨ (N ⊻ V)) = 0
0031بلوتوثقم بالتفرع إذا كان أقل من أو يساوي(Z ∨ (N ⊻ V)) = 1
1000BPLافصل إذا كان زائدN = 0
1001مؤشر كتلة الجسمتفرع إذا كان سالبN = 1
1010BHIقم بالتفرع إذا كان أعلى(C ∨ Z) = 0
1011بلوسقم بالتفرع إذا كان الفرع أقل أو متماثلاً(C ∨ Z) = 1
1020بي في سيقم بفصل الفرع إذا كان التدفق زائداًV = 0
1021بي في إسقم بالتفرع إذا تم تعيين تجاوز السعةV = 1
1030BCC أو BHISتفرع إذا كان الممر خالياً، أو تفرع إذا كان أعلى أو مساوياًC = 0
1031BCS أو BLOتفرع إذا تم وضع مجموعة حمل، أو تفرع إذا كان أقلC = 1

بسبب النطاق المحدود لتعليمات التفرع، مع ازدياد حجم البرنامج، تصبح عناوين الوجهة لبعض التفرعات غير قابلة للوصول. لذا، يقوم المبرمج بتغيير تعليمة BR المكونة من كلمة واحدة إلى تعليمة JMP المكونة من كلمتين من المجموعة التالية. ولأن JMP لا تحتوي على صيغ شرطية، يقوم المبرمج بتغيير BEQ إلى BNE التي تتفرع حول JMP.

تُعدّ تعليمة SOB (طرح واحد والتفرع) تعليمة تفرع شرطية أخرى. يتم إنقاص قيمة السجل المحدد بمقدار 1، وإذا لم تكن النتيجة صفرًا، يتم اتخاذ تفرع عكسي بناءً على  إزاحة الكلمة المكونة من 6 بتات.

1598650
رمز العمليةسجلإزاحة
رمز العمليةذاكريعملية
077تنهدSubtract One and Branch: Reg ← Reg - 1; if Reg ≠ 0 then PC ← PC - 2 × Offset

تعليمات سابروتين

يستدعي JSR روتينًا فرعيًا. تحدد مجموعة من ستة بتات نمط العنونة. يمكن لتعليمات JSR حفظ أي سجل في المكدس وتحميل هذا السجل بعنوان الإرجاع. البرامج التي لا تحتاج إلى هذه الميزة تحدد PC كسجل، JSR PC, addressويعود الروتين باستخدام RTS PC.

إذا تم استدعاء روتين باستخدام، على سبيل المثال، `R4` JSR R4, address، فسيتم دفع القيمة القديمة لـ R4 إلى أعلى المكدس، وسيتم وضع العنوان الذي يلي JSR مباشرةً (عادةً عنوان الإرجاع) في R4. ومع ذلك، يمكن للروتين الوصول إلى القيم المضمنة في الكود عن طريق تحديد `(R4)+`، أو إلى المؤشرات المضمنة في الكود عن طريق تحديد `@(R4)+`. ينتقل الترقيم التلقائي متجاوزًا هذه البيانات، إلى النقطة التي يستأنف عندها كود المُستدعي. في كلتا الحالتين، يُحدد هذا الروتين RTS R4العودة إلى المُستدعي.

يمكن استخدام الصيغة JSR PC,@(SP)+، التي تتبادل محتويات عداد البرنامج (PC) مع العنصر العلوي من المكدس، لتنفيذ الروتينات الفرعية . بمجرد أن يضع روتين ما عنوان دخول الروتين الفرعي على المكدس، فإن تنفيذه JSR PC,@(SP)+يحفظ عداد البرنامج على المكدس وينتقل إلى الروتين الفرعي. يمكن لكلا الروتينين الفرعيين بعد ذلك استخدام JSR PC,@(SP)+تعليمات إضافية للانتقال إلى الروتين الفرعي الآخر من حيث توقف. يتيح هذا للروتينين تبادل التحكم واستئناف تنفيذ أحدهما من نقطة التبادل السابقة.

159865320
رمز العمليةسجلالمصدريسجل
رمز العمليةذاكريعملية
004JSRانتقل إلى الروتين الفرعي:-(SP) ← Reg; Reg ← PC; PC ← Src

قيمة " PCmoved to" Regهي العنوان الذي يلي تعليمات JSR.

15320
رمز العمليةسجل
رمز العمليةذاكريعملية
٠٠٠٢٠RTSالعودة من الروتين الفرعي:PC ← Reg; Reg ← (SP)+
15650
رمز العمليةnn
رمز العمليةذاكريعملية
0064علامةالعودة من الروتين الفرعي، تجاهل عناصر المكدس:SP ← SP + (2 x nn), PC ← R5, R5 ← (SP)+

تُستخدم دالة MARK لحذف المعاملات من المكدس عند الخروج من روتين فرعي. ما يميز MARK هو أنها تُوضع على مكدس الإرجاع بواسطة المُستدعي ليتم تنفيذها لاحقًا مباشرةً على المكدس بواسطة روتين الإرجاع. أولًا، يدفع المُستدعي قيمة R5 إلى المكدس. ثانيًا، يمكن وضع ما يصل إلى 63 كلمة من المعاملات على المكدس. ثم يضيف المُستدعي عدد المعاملات إلى رمز MARK ويدفع النتيجة إلى المكدس. تُنسخ قيمة SP إلى R5. أخيرًا، JSR PC,addressيُنفذ أمر لاستدعاء الروتين الفرعي. بعد تنفيذ رمزه، ينتهي الروتين الفرعي بـ RTS R5. يقوم هذا بتحميل القيمة الموجودة في R5 (التي تشير إلى تعليمة MARK على المكدس) إلى عداد البرنامج (PC) وإخراج عنوان إرجاع المُستدعي إلى R5. تُنفذ تعليمة MARK. تضرب MARK عدد المعاملات في 2، وتضيف الناتج إلى SP، وتحذف المعاملات، ثم تعود إلى المُستدعي بما يُعادل RTS R5. نادراً ما يتم استخدام تعليمة MARK لأن عمليتها المعقدة يمكن استبدالها بعملية ADD إلى SP. [ 6 ]

تعليمات المصيدة

159870
رمز العمليةSرمز العملية
رمز العمليةSذاكريعملية
1040فني طب طوارئفخ المحاكي:-(SP) ← PS; -(SP) ← PC; PC ← (30); PS ← (32)
1041فخفخ عام:-(SP) ← PS; -(SP) ← PC; PC ← (34); PS ← (36)
150
رمز العملية
رمز العمليةذاكريعملية
000002حق الحصول على المعلوماتالعودة من المقاطعة:PC ← (SP)+; PS ← (SP)+
000003العلاج الطبيعيفخ نقطة التوقف:-(SP) ← PS; -(SP) ← PC; PC ← (14); PS ← (16)
000004إنترنت الأشياءمصيدة الإدخال/الإخراج:-(SP) ← PS; -(SP) ← PC; PC ← (20); PS ← (22)
000006RTTالعودة من الفخ:PC ← (SP)+; PS ← (SP)+

تعيين عناوين متجهات الفخ والاستثناءات

متجهحالة
٠٠٠٠٠٠(محجوز)
000004تعليمات غير قانونية، خطأ في ناقل البيانات، حد المكدس
000010تعليمات محجوزة
000014تعليمات BPT، مصيدة التتبع
000020تعليمات إنترنت الأشياء
000024انقطاع التيار الكهربائي
000030تعليمات فني الطوارئ الطبية
000034تعليمات الفخ
٠٠٠١١٤خطأ التكافؤ
٠٠٠٢٤٤استثناء الفاصلة العائمة
٠٠٠٢٥٠خطأ في إدارة الذاكرة

تعليمات متنوعة

150
رمز العملية
رمز العمليةذاكريعملية
٠٠٠٠٠٠وقفإيقاف المعالج:Halt execution before next instruction
000001انتظرانتظر المقاطعة:Halt execution before next instruction; Resume execution at next interrupt handler
000005إعادة ضبطإعادة ضبط UNIBUS:Assert INIT on UNIBUS for 10 ms; All other devices reset to power up state
٠٠٠٢٤٠برنامج العمل الوطنيلا توجد عملية جراحية:Do nothing

عمليات رمز الحالة

156543210
رمز العملية1SشمالZVج
رمز العمليةSذاكريعملية
٠٠٠٢0Cccرموز حالة واضحة:Clear codes according to N, Z, V, C bits
٠٠٠٢1Sccتعيين رموز الحالة:Set codes according to N, Z, V, C bits

رموز الحالة الأربعة في كلمة حالة المعالج (PSW) هي

  • يشير الحرف N إلى قيمة سالبة
  • يشير الرمز Z إلى حالة الصفر (المساواة).
  • يشير الحرف V إلى حالة تجاوز السعة، و
  • يشير الحرف C إلى حالة الحمل.

كانت التعليمات في هذه المجموعة تُعرف باسم "البرمجة الدقيقة" من قِبل شركة ديجيتال: حيث يشير بت واحد في كلمة التعليمات إلى رمز حالة واحد. لم يُحدد المُجمِّع صيغة لتحديد كل تركيبة، ولكن الرموز SCC وCCC تُجمِّع تعليمات تُعيِّن أو تُزيل، على التوالي، جميع رموز الحالة الأربعة.

يمكن اعتبار عدم مسح أو ضبط أي من رموز الحالة (رموز العمليات 000240 و000260 على التوالي) بمثابة تعليمات عدم تنفيذ. في الواقع، يُشار إلى هذه التعليمات اختصارًا بـ NOP، ويُرمز لها بالرمز 000240.

تعليمات غير متسقة

على مدار عمر جهاز PDP-11، ظهرت اختلافات طفيفة في تنفيذ التعليمات ومجموعات أنماط العنونة، مع أنه لم يُعتبر أي تنفيذ صحيحًا. لم تؤثر هذه الاختلافات على الاستخدام العادي لجهاز PDP-11. على سبيل المثال، في التعليمات MOV R5,-(R5)، يختلف ما إذا كان يتم إنقاص قيمة R5 تلقائيًا قبل استخدامها كمصدر بين الطرازات. [ 7 ]

مجموعات التعليمات الاختيارية

مجموعة التعليمات الموسعة (EIS)

يُعد نظام EIS خيارًا متاحًا للمعالجات 11/35/40 و 11/03، وكان يتم توفيره كمعيار قياسي في المعالجات الأحدث.

  • تقوم الدالتان MUL و DIV بضرب وقسمة المعامل الصحيح على زوج من السجلات.
  • عمليات حسابية مثل ASH و ASHC - تقوم بإزاحة سجل أو زوج من السجلات. بالنسبة للأرقام الموجبة، تتم الإزاحة إلى اليسار، وبالنسبة للأرقام السالبة، تتم الإزاحة إلى اليمين.

مجموعة التعليمات العائمة (FIS)

تُعدّ FIS خيارًا متاحًا لأجهزة PDP-11/35/40 و11/03. تُجرى عمليات الفاصلة العائمة أحادية الدقة على مكدس مُعنون بواسطة مُعامل سجل. تُحدد البتات الـ 13 العليا العملية المراد تنفيذها. ويُحدد حقل من ثلاثة بتات السجل المُستخدم كمؤشر مكدس لمعامل الفاصلة العائمة. كل فاصلة عائمة عبارة عن كلمتين، وتُجري كل تعليمة فاصلة عائمة عملية على فاصلتين عائمتين، مُرجعةً فاصلة عائمة واحدة كنتيجة. يتم زيادة مؤشر المكدس المُختار بمقدار 4 بعد كل عملية.

15320
رمز العمليةسجل
رمز العمليةذاكريعملية
07500موضةإضافة عائمة:4(Rn) ← 4(Rn) + (Rn), Rn ← Rn + 4
07501FSUBطرح عائم:4(Rn) ← 4(Rn) - (Rn), Rn ← Rn + 4
07502FMULالضرب العائم:4(Rn) ← 4(Rn) × (Rn), Rn ← Rn + 4
07503FDIVخط تقسيم عائم:4(Rn) ← 4(Rn) ÷ (Rn), Rn ← Rn + 4

معالج الفاصلة العائمة (FPP)

كان هذا خيار معالج الفاصلة العائمة الاختياري للطراز 11/45 ومعظم الطرازات اللاحقة.

  • عمليات الفاصلة العائمة الكاملة على معاملات أحادية أو مزدوجة الدقة، يتم تحديدها بواسطة بت أحادي/مزدوج في سجل حالة الفاصلة العائمة
  • تنسيق بيانات الفاصلة العائمة أحادي الدقة، وهو سلف تنسيق IEEE 754 : بت الإشارة، وأس من 8 بت، وجزء كسري من 23 بت مع بت مخفي 24

مجموعة التعليمات التجارية (CIS)

تُضيف مجموعة التعليمات التجارية، المعروفة باسم CIS أو CIS11، تعليمات السلاسل وتعليمات النظام العشري المشفر ثنائيًا (BCD) المستخدمة في لغتي COBOL و DIBOL . وقد تم تنفيذها بواسطة رمز دقيق اختياري في الإصدار 11/23/24، [ 8 ] [ 9 ] وبواسطة وحدة إضافية في الإصدار 11/44 [ 10 ] وإصدار واحد من الإصدار 11/74.

تُمثَّل السلاسل النصية بعددين صحيحين من 16 بت، يُخزَّنان في أي سجلين من سجلات الأغراض العامة، أو بقيمتين من 16 بت في موقعين متتاليين في الذاكرة. يُرمز لأحدهما بـ "n"، وهو طول السلسلة حتى 64  كيلوبايت، والآخر بـ "A"، وهو مؤشر إلى بداية بيانات الأحرف في الذاكرة. يشير الزوج n/A معًا إلى موقع السلسلة وطولها. [ 11 ] : 195 : 406

عمليات نسخ السلاسل النصية هي MOVEC وMOVTC وMOVRC. تنسخ MOVEC بيانات الأحرف من الذاكرة من الموقع المحدد في زوج n/A إلى الموقع المحدد في زوج n/A آخر، وكلاهما في سجلات، مع سجل ثالث يحتوي على حرف تعبئة في بتاته الثمانية السفلى وأصفار في بتاته الثمانية العليا. تقوم MOVEC بالشيء نفسه ولكن مع تخزين المواقع وحرف التعبئة في مواقع الذاكرة بدلاً من السجلات. في جميع تعليمات النقل، إذا كان المصدر أقصر من الوجهة، تتم إضافة حرف التعبئة إلى الوجهة، وإذا كان المصدر أطول، يتم اقتطاعه. في كلتا الحالتين، تُستخدم علامات حالة المعالج للإشارة إلى ذلك. MOVRC/MOVRC متشابهتان، لكنهما تنسخان عكسيًا لعكس السلسلة الأصلية في الوجهة. [ 11 ] : 409

تستخدم وحدتا MOVTC/MOVTCI جدول بحث بحجم 256 بايت لترجمة الأحرف أثناء النسخ، حيث يُشار إلى بدايته بواسطة سجل آخر في MOVTC أو مؤشر 16 بت في ذاكرة MOVTCI. تستخدم الترجمة قيم أحرف السلسلة المصدر كأرقام فهرس، وتنسخ القيمة الموجودة في جدول الترجمة عند ذلك الفهرس إلى السلسلة الوجهة. يمكن استخدام هذه الطريقة لتحويل EBCDIC إلى ASCII عن طريق وضع رمز حرف ASCII المقابل لرموز EBCDIC المُطابقة في الجدول. الحرف "E" هو الحرف رقم 69 في ASCII ورقم 197 في EBCDIC، لذا لتحويل EBCDIC إلى ASCII، يتم إنشاء جدول بحجم 256 بايت مع وضع الرقم 69 في الموقع 197. عند استدعاء MOVTC ورؤيته للرقم 197 في السلسلة الأصلية، يبحث في الموقع 197 من الجدول، ويجد الرقم 97، ثم يُخرجه في السلسلة الجديدة، مُجريًا بذلك عملية التحويل. [ 11 ] : 456-458

تُعالج مقارنات السلاسل النصية بواسطة وحدة التحكم في حالة المعالج (CMPC)، التي تُحدد رموز حالة المعالج بناءً على نتائج مقارنة سلسلتين نصيتين. تُحدد وحدة LOCC أول ظهور لحرف معين في سلسلة نصية، بينما تبحث وحدة SKPC عن أول حرف غير مطابق، وتُستخدم، على سبيل المثال، لحذف المسافات الفارغة في بداية السلاسل النصية. تُشبه وحدتا SCANC وSPANC وحدتي LOCC وSKPC، لكنهما تُطابقان أي حرف في مجموعة أحرف مُقنّعة. يُمكن استخدام ذلك، على سبيل المثال، للعثور على الظهور التالي لأي حرف فاصل أسطر مثل VT أو LF أو CR. مجموعات الأحرف عبارة عن جدول من 256 بايت، مُقسّم إلى مجموعات فرعية. [ أ ] تُشبه هذه المجموعات جداول الترجمة، حيث تُشكّل البتات الثمانية السفلى من الكلمة الأولى قناعًا، وتُشير الكلمة الثانية إلى بداية الجدول. يُحدد القناع أيًا من المجموعات الفرعية، بحد أقصى ثماني مجموعات، تُشكّل جزءًا من مجموعة الأحرف أثناء المقارنات. باستخدام هذا النظام، يمكن تعريف مجموعات الأحرف مثل الأحرف الكبيرة والصغيرة والأرقام، وما إلى ذلك، ثم دمجها بسهولة عبر القناع، على سبيل المثال، تحديد مجموعات الأحرف الكبيرة والصغيرة لإنتاج المجموعة الكاملة من الأحرف. [ 11 ]

يتضمن نظام CIS أيضًا مجموعة من أنواع البيانات وتعليمات لمعالجة أرقام BCD. تُمثَّل هذه البيانات أيضًا بواسطة سجلين أو موقعين في الذاكرة، كل منهما 16 بت، حيث يكون الرقم الثاني هو A، وهو مطابق لحالة السلسلة النصية. تحتوي الكلمة الأولى الآن على أربعة حقول تصف تمثيل البيانات كسلسلة نصية، بما في ذلك الأرقام المضغوطة وغير المضغوطة، ومعالجة الإشارة، وطول السلسلة من 0 إلى 16 بايت. كان نظام DEC يُشير إلى البيانات غير المضغوطة، التي تحتوي على رقم واحد لكل بايت، باسم "السلاسل الرقمية". باستخدام البيانات المضغوطة، التي تحتوي على رقمين BCD لكل بايت، يمكن لسلسلة نصية من 16 بايت أن تحتوي على أرقام BCD يصل طولها إلى 32 رقمًا. تضمنت التعليمات ADDP/ADDN للبيانات المضغوطة وغير المضغوطة، وSUBP/SUBN، وASHP/ASHN (الإزاحة الحسابية)، وCMPP/CMPN (المقارنة). أما بالنسبة للبيانات المضغوطة فقط، فتتوفر التعليمات MULP وDIVP. يتضمن نظام CIS أيضًا مجموعة من ست تعليمات (CVT) لتحويل أرقام BCD بين التنسيقات المضغوطة وغير المضغوطة، وكذلك من وإلى القيم الثنائية. [ 11 ]

يتم توفير مجموعة أخيرة من التعليمات لتحميل اثنين أو ثلاثة من واصفات السلاسل المكونة من كلمتين إلى السجلات الداخلية، مما يغني عن الحاجة إلى عمليات نقل متعددة. [ 11 ]

الوصول إلى كلمة حالة المعالج (PSW)

يُربط سجل PSW بعنوان الذاكرة 177776، وبالتالي يمكن معالجته كأي بيانات أخرى. الاستثناء الوحيد هو معالج LSI-11 الذي لا يربط سجل PSW بمساحة الذاكرة. توفر التعليمات الموجودة في جميع معالجات PDP-11 باستثناء أقدمها وصولاً مباشراً للبرامج إلى السجل.

  • SPL (تحديد مستوى الأولوية)
  • MTPS (نقل إلى حالة المعالج)
  • MFPS (نقل من حالة المعالج)

الوصول إلى مساحات الذاكرة الأخرى

في معالجات PDP-11 التي توفر مساحات متعددة للتعليمات والبيانات، تتيح مجموعة من تعليمات النقل غير المتعامدة الوصول إلى مساحات أخرى. على سبيل المثال، تستخدم الإجراءات الروتينية في نظام التشغيل التي تعالج استدعاءات الخدمة أثناء التشغيل هذه التعليمات لتبادل المعلومات مع البرنامج المستدعي.

  • MTPD (الانتقال إلى مساحة البيانات السابقة)
  • MTPI (الانتقال إلى مساحة التعليمات السابقة)
  • MFPD (نقل من مساحة البيانات السابقة)
  • MFPI (الانتقال من مساحة التعليمات السابقة)

مثال على التعليمات البرمجية

الكود المصدري التالي للغة التجميع PDP-11 هو لروتين فرعي يسمى يقوم بتحويل سلسلة أحرف ASCIIZTOUPPER المنتهية بـ null إلى أحرف كبيرة.

 ٠٠٠٠٠٠ 000000 010046 000002 010146 000004 016600 000006 000010 112001 000012 001414 000014 120127 000172 000020 003373 000022 120127 000141 000026 002776 000030 142740 000040 000034 000766 000036 012601 000040 012600 000042 000207 
TOUPPER: ; مسح سلسلة ASCII منتهية بـ null، وتحويل ; جميع الأحرف الأبجدية إلى أحرف كبيرة. ; ; معلمات مكدس الإدخال، ; [SP+2] = عنوان السلسلة المستهدفة ; [SP+0] = عنوان الإرجاع ; TOUPPER: MOV R0 , - ( SP ) ; حفظ بعض السجلات MOV R1 , - ( SP ) MOV 6 ( SP ), R0 ; الحصول على عنوان السلسلةحلقة: MOVB ( R0 ) + , R1 ; احصل على حرف BEQ DONE ; إذا كان صفرًا، فقد انتهى الأمر CMPB R1 , #'z ; هل هو بين a و z؟ BGT LOOP ; إذا لم يكن كذلك، فاحصل على الحرف التالي CMPB R1 , #'a BLT LOOP BICB #40,-(R0) ; إذا كان az، فاجعله AZ BR LOOPتم: MOV ( SP ) + , R1 ; استعادة السجلات MOV ( SP ) + , R0 RTS PC ; العودة من البرنامج الفرعي

يوضح كود المصدر التالي للغة التجميع PDP-11 كيفية استخدام أوضاع عنونة PDP-11 لكتابة نفس الروتين بدون سجلات عامة على الإطلاق.

 ٠٠٠٠٠٠ 000000 105776 000002 000004 001416 000006 127627 000002 000172 000014 003008 000016 127627 000002 000141 000024 002403 000026 142776 000040 000002 000034 005266 000002 000040 000757 000042 000207 
TOUPPER2: ; مسح سلسلة ASCII منتهية بـ null، وتحويل ; جميع الأحرف الأبجدية إلى أحرف كبيرة. ; ; معلمات مكدس الإدخال، ; [SP+2] = عنوان السلسلة المستهدفة ; [SP+0] = عنوان الإرجاع ; TOUPPER2: TSTB @ 2 ( SP ) ; اختبار الحرف في العنوان على المكدس BEQ DONE ; إذا كان صفرًا، فقد تم الانتهاء CMPB @ 2 ( SP ), #'z ; هل هو بين a و z؟ BGT NEXTC ; إذا لم يكن كذلك، فأشر إلى الحرف التالي CMPB @ 2 ( SP ), #'a BLT NEXTC BICB #40,@2(SP) ; إذا كان az، فاجعله AZ NEXTC: INC 2 ( SP ) ; زيادة عنوان الحرف التالي على المكدس BR TOUPPER2تم: لعبة استراتيجية الوقت الحقيقي على الكمبيوتر الشخصي

سرعة

تختلف سرعة معالج PDP-11 باختلاف الطراز، وتكوين الذاكرة، ورمز العملية، وأنماط العنونة. تتكون أوقات تنفيذ التعليمات من ثلاثة عناصر: جلب/تنفيذ التعليمات نفسها، ووقت الوصول إلى المصدر والوجهة. يعتمد العنصران الأخيران على نمط العنونة. على سبيل المثال، في جهاز PDP-11/70 (حوالي عام 1975)، كانت مدة جلب/تنفيذ تعليمة من الشكل ADD x (R m ), y (R n ) هي 1.35 ميكروثانية ، بالإضافة إلى وقتي الوصول إلى المصدر والوجهة، كل منهما 0.6 ميكروثانية، ليصبح إجمالي وقت تنفيذ التعليمة 2.55 ميكروثانية. في حال عدم وجود الذاكرة المُعنونة في الذاكرة المخبئية، تُضاف 1.02 ميكروثانية. يمكن تنفيذ تعليمة ADD R m ,R n من الذاكرة المخبئية في 0.3 ميكروثانية. أما العمليات الحسابية ذات الفاصلة العائمة فهي أكثر تعقيدًا، نظرًا لوجود بعض التداخل بين وحدة المعالجة المركزية ومعالج الفاصلة العائمة، ولكن بشكل عام، تكون العمليات الحسابية ذات الفاصلة العائمة أبطأ بكثير. يستغرق تنفيذ تعليمة الجمع العائم أحادية الدقة من 2.4 إلى 5.5 ميكروثانية بالإضافة إلى وقت جلب المعاملات. [ 12 ] 

المقاطعات

يعمل جهاز PDP-11 بمستوى أولوية يتراوح من 0 إلى 7، ويتم تحديده بواسطة ثلاث بتات في كلمة حالة المعالج (PSW) . يمكن للطرازات المتطورة العمل في أوضاع متعددة، مثل وضع النواة (المميز)، ووضع المستخدم (التطبيق)، وأحيانًا وضع المشرف، وذلك وفقًا لبتتين في كلمة حالة المعالج (PSW).

لطلب مقاطعة، يقوم جهاز ناقل البيانات بتفعيل أحد خطوط الناقل الأربعة المشتركة، من BR4 إلى BR7، حتى يستجيب المعالج. تشير الأرقام الأعلى إلى أولوية أكبر، فقد تُفقد البيانات أو قد ينفصل قطاع معين عن رؤوس القراءة/الكتابة ما لم يستجب المعالج بسرعة. تُعد جاهزية الطابعة لطباعة حرف آخر هي الأقل أولوية (BR4)، حيث تبقى جاهزة إلى أجل غير مسمى. إذا كان المعالج يعمل عند المستوى 5، فإن BR6 وBR7 هما المطلوبان. إذا كان المعالج يعمل عند المستوى 3 أو أقل، فسيمنح أي مقاطعة؛ أما إذا كان عند المستوى 7، فلن يمنح أي مقاطعة. طلبات ناقل البيانات التي لم تتم الموافقة عليها لا تُفقد، بل تُؤجل فقط؛ ويستمر الجهاز الذي يحتاج إلى الخدمة في إرسال طلبه عبر ناقل البيانات.

عندما يتجاوز أي مقاطعة مستوى أولوية المعالج، يُفعّل المعالج إشارة منح ناقل البيانات المقابلة، من BG4 إلى BG7. خطوط منح ناقل البيانات ليست خطوطًا مشتركة، بل هي سلسلة متصلة : مدخل كل بوابة هو مخرج البوابة السابقة في السلسلة. توجد بوابة على كل جهاز ناقل، والجهاز الأقرب فعليًا إلى المعالج يكون في بداية السلسلة. إذا قدم الجهاز طلبًا، فعند استشعاره إشارة منح ناقل البيانات، يستنتج أنه يتحكم في الناقل، ولا يمرر إشارة المنح إلى الجهاز التالي على الناقل. أما إذا لم يقدم الجهاز طلبًا، فإنه ينشر إشارة منح ناقل البيانات من مدخله إلى مخرجه، مما يتيح للجهاز الأقرب التالي فرصة الرد. (إذا لم تشغل الأجهزة فتحات مجاورة للوحة المعالج، فإن "بطاقات استمرارية المنح" المُدخلة في الفتحات الفارغة تنقل خط منح ناقل البيانات).

بمجرد سيطرة الجهاز على ناقل البيانات، يُلغي طلبه ويضع على الناقل عنوان الذاكرة لمتجه مكون من كلمتين يشير إلى عنوان روتين خدمة المقاطعة، بالإضافة إلى كلمة مرور جديدة (PSW). يحفظ المعالج عداد البرنامج (PC) وكلمة المرور القديمين، ويدخل وضع النواة، ثم يُحمّل القيم الجديدة من المتجه المحدد. بالنسبة لجهاز في BR6، تُحدد كلمة المرور الجديدة في متجهه عادةً 6 كأولوية جديدة للمعالج، لذا سيُلبي المعالج الطلبات الأكثر إلحاحًا (BR7) أثناء روتين الخدمة، ولكنه سيؤجل الطلبات ذات الأولوية نفسها أو الأقل. باستخدام عداد البرنامج الجديد، ينتقل المعالج إلى روتين خدمة الجهاز المُقاطع. يُشغّل هذا الروتين الجهاز، على الأقل لإزالة الحالة التي تسببت في المقاطعة. ينتهي الروتين بتعليمات RTI (العودة من المقاطعة)، التي تُعيد عداد البرنامج وكلمة المرور إلى حالتهما قبل أن يُعطي المعالج المقاطعة مباشرةً.

إذا تم تقديم طلب ناقل ولم يستجب أي جهاز لمنح الناقل، فإن المعالج ينتهي وقته وينفذ عملية اعتراض تشير إلى وجود خلل في الأجهزة.

لغة التجميع MACRO-11

شريط مثقوب يستخدم لجهاز PDP-11

لغة MACRO-11 هي لغة التجميع الخاصة بجهاز PDP-11. وهي خليفة لغة PAL-11 (محمل برنامج التجميع)، وهي إصدار سابق من لغة تجميع PDP-11 يفتقر إلى إمكانيات الماكرو. تدعم جميع أنظمة تشغيل DEC PDP-11 لغة MACRO-11. كما تتضمن أنظمة Unix الخاصة بجهاز PDP-11 مُجمِّعًا (يُسمى " as ")، وهو مشابه هيكليًا للغة MACRO-11، ولكنه يختلف عنها في بناء الجملة ويحتوي على عدد أقل من الميزات.

انظر أيضاً

  • WD16 ، امتداد لمجموعة تعليمات PDP-11

ملحوظات

  1. إن قناع البايت الواحد يعني وجود ثماني مجموعات فرعية من 32 حرفًا لكل منها، ولكن هذا غير مذكور بوضوح في الوثائق.

مراجع

  1. دليل معالج pdp11، pdp11/04/34a/44/60/70 (ملف PDF) . ديسمبر 1979. تم الاطلاع عليه بتاريخ 20 يوليو 2025 .
  2. "الفصل 7". دليل المعالج pdp11/05/10/35/40 (PDF) . ديسمبر 1973.
  3. دليل معالج pdp11 pdp11/04/34a/44/60/70 (PDF) . ديسمبر 1979. صفحة 421. 
  4. بيل، جوردون ؛ ستريكر، دبليو دي. ما تعلمناه من جهاز PDP-11 - ما تعلمناه من جهازي VAX و Alpha (ملف PDF) (تقرير) . تم الاطلاع عليه بتاريخ 26-06-2025 .
  5. دوتزل، غونتر (1986). "حول LSI-11، RT-11، ميغابايت من الذاكرة و Modula-2/VRS" (PDF) .
  6. "دليل معالج PDP11/40" . شركة ديجيتال إكويبمنت . تم الاطلاع عليه بتاريخ 16 يوليو 2024 .
  7. "تناقضات مجموعة تعليمات PDP-11" . stackexchange.com . تم الاطلاع عليه بتاريخ 19-10-2025 .يستشهد بدليل هندسة PDP-11، 1983، الملحق ب، "اختلافات عائلة PDP-11".
  8. دليل مستخدم وحدة المعالجة المركزية KDF11-BA (ملف PDF) . ديسمبر. يناير 1982. ص 1 - 8. 
  9. دليل النظام الفني PDP-11/24 (PDF) . ديسمبر - يونيو 1981. ص 4 - 3. EK-11024-TM-001. 
  10. دليل مستخدم KE44-ACISP (ملف PDF) . ديسمبر 1981. EK-KE44A-UG-002.
  11. 1 2 3 4 5 6 دليل معالج pdp11 pdp11/04/34a/44/60/70 (PDF) . ديسمبر 1979.
  12. دليل معالج DEC PDP-11/70، 1975، الملحق ج، توقيت التعليمات.

للمزيد من القراءة