| يجب أن يكون المرشحون قادرين على: | ملاحظات وإرشادات |
|---|---|
| أظهر فهماً لنموذج فون نيومان الأساسي لنظام حاسوبي ومفهوم البرنامج المخزن | |
| أظهر فهماً لغرض ودور المسجلات، بما في ذلك الفرق بين مسجلات الغرض العام ومسجلات الغرض الخاص | المسجلات ذات الغرض الخاص تشمل: • عداد البرنامج (PC) • مسجل بيانات الذاكرة (MDR) • مسجل عنوان الذاكرة (MAR) • المُجمّع (ACC) • مسجل الفهرس (IX) • مسجل التعليمات الحالية (CIR) • مسجل الحالة |
| أظهر فهماً لغرض وأدوار وحدة الحساب والمنطق (ALU)، وحدة التحكم (CU) و** الساعة النظامية**، المخزن ذو الوصول الفوري (IAS) | |
| أظهر فهماً لكيفية نقل البيانات بين مكونات نظام الحاسوب المختلفة باستخدام ناقل العناوين، ناقل البيانات وناقل التحكم | |
| أظهر فهماً للعوامل التي تساهم في أداء نظام الحاسوب | بما في ذلك: • نوع المعالج وعدد النوى • عرض الناقل • سرعة الساعة • ذاكرة الكاش |
| افهم كيف توفر المنافذ المختلفة اتصالاً بالأجهزة الطرفية | بما في ذلك الاتصال بـ: • النقل التسلسلي العالمي (USB) • واجهة الوسائط عالية الوضوح (HDMI) • مصفوفة الرسوميات المرئية (VGA) |
| صف مراحل دورة جلب-تنفيذ (F-E) | صف واستخدم رمز 'انتقال المسجل' لوصف دورة F-E |
| أظهر فهماً لغرض الأوامر الناقلة (Interrupts) | بما في ذلك: • الأسباب المحتملة للأوامر الناقلة • تطبيقات الأوامر الناقلة • استخدام روتين خدمة الأوامر الناقلة (ISR) • متى يتم اكتشاف الأوامر الناقلة أثناء دورة جلب-تنفيذ • كيفية التعامل مع الأوامر الناقلة |
أساسيات المعالج
A-Level علوم الحاسوب · الموضوع 4
21:32
عمارة فون نيومان
لمعظم التاريخ، كانت الآلة تقوم بوظيفة واحدة. نسيج نسج القماش. آلة حاسبة أجرت الجمع. لجعلها تقوم بشيء جديد، أعاد بناؤها. ثم جاءت عمارة بسيطة بشكل خادع…
سرد باللغة الإنجليزية · ترجمة مدمجة بالإنجليزية + الصينية
4.1
معمارية فون نيومان
المنهج
المصدر: منهج كامبريدج الدولي
تعتمد معمارية فون نيومان· على معظم حواسيب الأغراض العامة:
- ذاكرة واحدة — ذاكرة الوصول الفوري (IAS) — تحتفظ بـ تعليمات البرنامج والبيانات (مفهوم البرنامج المخزن).
- معالج (CPU) يستخرج التعليمات من الذاكرة وينفذها واحدة تلو الأخرى.
- تعمل التعليمات بترتيب محدد إلا إذا غيّر فرع تدفق التنفيذ.
فكرة البرنامج المخزن هي ما يجعل الحاسوب مرناً: غيّر البرنامج وتغيّر وظيفته دون الحاجة لإعادة توصيل الأسلاك.
اضغط على مكونات حاسوب فون نيومان
استكشف كل كتلة. تتواصل وحدة المعالجة المركزية (وحدة التحكم، وحدة الحساب والمنطق، المسجلات) مع ذاكرة رئيسية واحدة عبر الحواجز — وتُعد هذه الذاكرة المشتركة الواحدة للأوامر والبيانات هي فكرة فون نيومان.
4.1
الأجزاء الرئيسية للمعالج
جميع هذه الأجزاء تقع داخل شريحة صغيرة واحدة. يُظهر الرسم البياني لاحقاً في هذا القسم كيفية اتصالها؛ الصورة أدناه تُظهر الشريحة الحقيقية.


وحدة الحساب والمنطق (ALU)
تقوم وحدة ALU بالحساب (جمع، طرح، ...) والمنطق (AND, OR, مقارنات). تأخذ المعاملات من المسجلات وتضع النتائج مرة أخرى في مسجل.
وحدة التحكم (CU)
وحدة التحكم تفسر كل تعليمة وتُرسل إشارات التحكم لتنفيذها — فتح مسارات البيانات، إخبار ALU بما يجب فعله، والتحكم في قراءات وكتابات الذاكرة.
ساعة النظام
تُرسِل الساعة تدفقاً مستمراً من النبضات تبقي المعالج متناسقاً. تستغرق كل تعليمة عددًا ثابتًا من الدورات، وتعد سرعة الساعة (مثلاً 3.8 GHz) عاملاً في الأداء.
"اشرح كيف تعمل وحدة التحكم وساعة النظام معاً": تُصدر الساعة نبضات بتردد ثابت؛ تستخدم وحدة التحكم كل نبضة لتقدم دورة جلب-تنفيذ بخطوة واحدة، وترسل إشاراتها التحكمية في تزامن مع النبضات، بحيث يتغير حالة كل جزء من المعالج معاً. سرعة أعلى تعني خطوات أكثر في الثانية، حتى النقطة التي لا تستطيع فيها الدوائر الاستقرار بين النبضات.
المسجلات
المسجلات مخازن صغيرة وسريعة جداً داخل المعالج. كل مسجل purpose خاص له وظيفة ثابتة في الدورة:
- عداد البرنامج (PC) — عنوان التعليمة التالية.
- مسجل عنوان الذاكرة (MAR) — العنوان الذي يتم قراءته أو كتابته.
- مسجل بيانات الذاكرة (MDR) — البيانات المتجهة إلى الذاكرة أو القادمة منها.
- مسجل التعليمة الحالية (CIR) — التعليمة التي يتم تفسيرها حالياً.
- المجمّع (ACC) — القيمة التي يعمل عليها ALU.
- مسجل الحالة — يحتوي على علامات (الحمل، الصفر، السالب، التفوق) المستخدمة في الفروع. كل علامة بت واحد، يتم تعيينه أو إلغاؤه بواسطة ALU بعد عملية: علامة الصفر بعد مقارنة تطابقت، علامة الحمل عند تفوق الجمع عن المسجل، علامة السالب عندما يكون النتيجة سالبة. القفز الشرطي يقرأ العلامات لقرارة الفرع، ويمكن أن ترفع علامة التفوق مقاطعة.
- مسجل المؤشر — إزاحة تُضاف إلى العنوان في العنونة بالمؤشر؛ زيادته ينقل عبر مصفوفة عنصرًا واحدًا في كل مرة.
سؤال "أتمم الجدول الذي يصف دور كل مسجل" يتطلب جملة دقيقة واحدة لكل مسجل بهذه المصطلحات: PC يحمل عنوان التعليمة التالية سيتم جلبها؛ MAR يحمل عنوان الموقع الذي يتم القراءة منه أو الكتابة فيه؛ MDR يحمل البيانات أو التعليمة التي تم قراءتها للتو من، أو سيتم كتابتها إلى، ذلك الموقع؛ CIR يحمل التعليمة جاري تفسيرها وتنفيذها حالياً؛ ACC يحمل نتيجة آخر عملية حسابية أو منطقية.
تُستخدم المسجلات متعددة الأغراض من قبل المبرمج لتخزين القيم المؤقتة أثناء الحساب. تُكتب حركات البيانات بين المسجلات والذاكرة باستخدام رمز نقل المسجل — على سبيل المثال MAR ← [PC] ("نسخ محتويات PC إلى MAR").

| English | العربية |
|---|---|
| Von Neumann architecture/vɒn ˈnɔɪmən ˈɑːkɪtektʃə/ | عمارة فون نيومان |
| Immediate Access Store/ɪˈmiːdɪət ˈækses stɔː/ | ذاكرة الوصول الفوري |
| stored program/stɔːd ˈprəʊɡræm/ | برنامج مخزن |
| processor/ˈprəʊsesə/ | المعالج |
| arithmetic and logic unit/ˌærɪθˈmetɪk ənd ˈlɒdʒɪk ˈjuːnɪt/ | وحدة الحساب والمنطق |
| ALU/ˌeɪ el ˈjuː/ | وحدة الحساب والمنطق (ALU) |
4.1
الناقلات
ثلاث ناقلات داخلية (مجموعات من الأسلاك المتوازية) تربط الأجزاء:
- ناقل العنوان — ينقل عنوان الذاكرة. ذو اتجاه واحد (CPU → الذاكرة).
- ناقل البيانات — ينقل البيانات. ثنائي الاتجاه.
- ناقل التحكم — ينقل إشارات التحكم (قراءة، كتابة، انقطاع). ثنائي الاتجاه.
يمكن لـ ناقل العناوين بسعة $n$ بت الوصول إلى $2^{n}$ موقع في الذاكرة. تحدد سعة ناقل البيانات عدد البتات المنقولة في كل وصول (غالبًا ما تكون حجم الكلمة).


| English | العربية |
|---|---|
| buses/ˈbʌsɪz/ | حواجز بيانات |
| address bus/əˈdres bʌs/ | حاجز العناوين |
| data bus/ˈdeɪtə bʌs/ | حاجز البيانات |
| word size/wɜːd saɪz/ | حجم الكلمة |
| number of cores/ˈnʌmbə ɒv kɔːz/ | عدد النوى |
| cores/kɔːz/ | أنوية |
| amount of RAM/əˈmaʊnt ɒv ræm/ | كمية ذاكرة الوصول العشوائي |
4.1
ما يؤثر على الأداء
- سرعة الساعة — دورات أكثر في الثانية.
- عدد النوى — معالج متعدد النوى يشغل عدة خيوط عمل في وقت واحد.
- حجم الكلمة — معالج 64-بت يتعامل مع كتل بحجم 64-بت لكل دورة ويمكنه معالجة ذاكرة أكبر بكثير من المعالج 32-بت.
- كمية RAM — تزيد RAM من سعة تخزين مجموعة العمل؛ القليل منها يجبر نظام التشغيل على التبديل إلى القرص الصلب.
- حجم ذاكرة الكاشي — زيادة الكاشي تقلل متوسط زمن الوصول للذاكرة.
- نوع التخزين الثانوي — يحمّل SSD البرامج بشكل أسرع بكثير من HDD.
- عرض وسرعة الناقل — الناقلات الأوسع والأسرع تنقل البيانات بسرعة أكبر.
طابق المواصفات مع عبء العمل: المعالج رباعي النوى يفوق ثنائي النواة في المهام المتوازية، لكن السرعة الأعلى لكل نواة تفوز في المهام ذات الخيط الواحد.
كل عامل هو إجابة بعلامة اثنتين مع سبب مرفق:
- مزيد من النوى: يمكن لكل نواة جلب وتنفيذ تعليماتها الخاصة في نفس الوقت، لذا تعمل عدة برامج أو خيوط عمل برنامج واحد بالتوازي. لكن يجب كتابة البرنامج لاستخدام أكثر من نواة واحدة، لذا مضاعفة النوى لا تضاعف السرعة.
- سرعة ساعة أعلى: دورات جلب-تنفيذ أكثر في الثانية، لذا تعليمات أكثر في الثانية؛ والحد الأقصى هو الحرارة الناتجة.
- ناقل أوسع: ناقل بيانات أوسع ينقل المزيد من البتات في كل نقل، لذا يُقلل عدد النقلات المطلوبة لنفس البيانات؛ ناقل عناوين أوسع يمكنه معالجة مواقع ذاكرة أكثر.
- ذاكرة الكاشي: ذاكرة صغيرة وسريعة داخل أو بجانب المعالج تحتفظ بأحدث التعليمات والبيانات استخدامًا أو الأكثر تكرارًا. قراءتها من الكاشي أسرع بكثير من RAM، لذا يقضي المعالج وقتًا أقل في الانتظار.
"اشرح لماذا يقوم الكمبيوتر الجديد بأداء أفضل" تُجاب بمقارنة المواصفطين سطراً بسطر: سرعة ساعة أعلى تنفذ تعليمات أكثر في الثانية، نوى أكثر تشغل مهام أكثر في وقت واحد، كاشي أكبر يعني وصولات أبطأ أقل إلى RAM، وRAM أكبر يعني نقلات أقل إلى القرص.
| English | العربية |
|---|---|
| RAM/ræm/ | ذاكرة RAM |
| page/peɪdʒ/ | صفحة |
| cache memory/kæʃ ˈmeməri/ | ذاكرة التخزين المؤقت |
| cache/kæʃ/ | cache |
| secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ | التخزين الثانوي |
| port/pɔːt/ | منفذ |
| peripheral/pəˈrɪfərəl/ | peripheral ( peripheral ) |
| register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ | رمز انتقال المسجلات |
| interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ | روتين خدمة الانقطاع |
| interrupt register/ˈɪntərʌpt ˈredʒɪstə/ | مسجل الانقطاع |
| stack/stæk/ | مكدس |
| assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ | لغة التجميع |
| machine code/məˈʃiːn kəʊd/ | كود الآلة |
| mnemonics/nɪˈmɒnɪks/ | الاختصارات |
| assembler/əˈsemblə/ | مبرمج |
| symbol table/ˈsɪmbl ˈteɪbl/ | جدول الرموز |
| label/ˈleɪbl/ | التسمية |
| forward references/ˈfɔːwəd ˈrefrənsɪz/ | المرجعات الأمامية |
| opcode/ˈɒpkəʊd/ | رمز العملية |
4.1
المنافذ
المنفذ هو مقبس فيزيائي لتوصيل جهاز طرفي:
- USB (ناقل تسلسلي عالمي) — متعدد الأغراض (ألواح مفاتيح، محركات أقراص، هواتف).
- HDMI (واجهة الوسائط عالية الدقة) — فيديو وصوت رقمي إلى شاشة.
- VGA (مصفوفة رسوميات الفيديو) — خرج فيديو تناظري قديم إلى شاشات العرض.
- Ethernet (RJ-45) — شبكة محلية سلكية. منافذ الصوت — سماعات الرأس/مايكروفون.
تستخدم منافذ مختلفة إشارات مختلفة، لذا لن يتناسب كابل HDMI مع مقبس USB. USB-C غير معتاد في حمل الفيديو والبيانات والطاقة.
"اشرح كيف يتصل الكمبيوتر بالشاشة عبر HDMI": يرسل منفذ HDMI الفيديو والصوت كإشارة رقمية واحدة عبر كابل واحد، لذا لا حاجة للتحويل إلى تناظري ولا يتدهور الصورة؛ يحمل الكابل دقة عالية وتقوم منفذ الشاشة بفك تشفير الإشارة. الجهاز USB شغّل واتصل: عند توصيله يكتشفه الكمبيوتر، ويتعرف عليه، ويحمل أو يثبت التعريف المطلوب له، ويمكنه تزويد بالطاقة، كل ذلك بدون إعادة تشغيل.
4.1
دورة الجلب والتنفيذ
يكرر المعالج دورة الجلب-التنفيذ، مرة واحدة لكل تعليمة آلية.
الجلب
- يُنسخ عنوان PC إلى MAR.
- يتم زيادة PC ليشير إلى التعليمة التالية.
- تذهب إشارة قراءة عبر ناقل التحكم.
- تضع الذاكرة التعليمة على ناقل البيانات.
- تُنسخ إلى MDR، ثم إلى CIR.
يسأل الامتحان عن هذه الخطوات بـرمز نقل المسجل، حيث [X] تعني محتويات المسجل X و[[MAR]] تعني محتويات موقع الذاكرة الذي يقع عنوانه في MAR:
MAR ← [PC] the address of the next instruction goes to the MAR
PC ← [PC] + 1 the PC now points to the following instruction
MDR ← [[MAR]] the instruction at that address is read into the MDR
CIR ← [MDR] the instruction is copied into the CIR for decoding
الترتيب مهم: يتم زيادة PC مباشرة بعد نسخ عنوانه، بحيث لا يزال بإمكان القفز المنفذ لاحقًا استبداله. أثناء التنفيذ يصف الرمز نفسه كل تعليمة؛ على سبيل المثال لـ LDD 200، لدينا MAR ← 200، MDR ← [[MAR]]، ACC ← [MDR].

فك التشفير
تقوم وحدة التحكم بفك تشفير التعليمات في مسجل CIR — ما هي العملية، وما هي المعاملات أو العناوين.
التنفيذ
تنفذها وحدة التحكم: العمليات الحسابية/المنطقية تُرسل إلى ALU (الناتج إلى ACC)؛ عملية التحميل/التخزين تنقل البيانات بين الذاكرة والمسجل؛ قفزة تغيير PC. ثم يتكرر الدورة.

دورة جلب التنفيذ
اضغط حول الحلقة التي تكررها وحدة المعالجة المركزية مليارات المرات في الثانية. شاهد كيف يستخدم الجلب مسجلات PC/MAR/MDR/CIR، ثم فك التشفير والتنفيذ يؤثران على ما تم جلبه.
دورة جلب التنفيذ
مرر عبر كيفية تشغيل المعالج لم instruction واحدة — اجلبه من الذاكرة، شفره، ثم نفذه، مرارًا وتكرارًا.
| English | العربية |
|---|---|
| fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ | دورة جلب-تنفيذ |
| special purpose registers/ˈspeʃl ˈpɜːpəs ˈredʒɪstəz/ | مسجلات ذات أغراض خاصة |
| Program Counter/ˈprəʊɡræm ˈkaʊntə/ | عداد البرنامج |
| Memory Address Register/ˈmeməri əˈdres ˈredʒɪstə/ | مسجل عنوان الذاكرة |
| Memory Data Register/ˈmeməri ˈdeɪtə ˈredʒɪstə/ | مسجل بيانات الذاكرة |
| Current Instruction Register/ˈkʌrənt ɪnˈstrʌkʃn ˈredʒɪstə/ | مسجل التعليمات الحالية |
| accumulator/əˈkjuːmjʊleɪtə/ | المُجمِّع |
| Status Register/ˈsteɪtəs ˈredʒɪstə/ | مسجل الحالة |
| flags/flæɡz/ | العلامات |
4.1
المقاطعات
المقطع هو إشارة توقف الدورة الطبيعية حتى يتمكن CPU من معالجة حدث طارئ (ضغط مفتاح، وصول حزمة بيانات، عطل في الأجهزة، القسمة على صفر، مؤقت نظام التشغيل).
معالجة واحدة:
- إكمال التعليمة الحالية.
- حفظ الحالة (PC والمسجلات).
- تحميل عنوان روتين خدمة المقاطعة (ISR) في PC وتشغيله.
- يقوم ISR بمعالجة الحدث.
- استعادة الحالة المحفوظة والاستمرار.
تسمح المقاطعات للنظام بالاستجابة بسرعة دون أن يفحص CPU الأجهزة باستمرار، وهي الطريقة التي يستخدمها نظام التشغيل لمتعدد المهام.
"اشرح كيف يتم اكتشاف المقطع القادم من جهاز إدخال ومعالجته في دورة F-E" إجابة مؤهلة بأربع نقاط: يرسل الجهاز إشارة مقطع تضع علم المقاطعة في مسجل المقاطعة؛ يفحص المعالج ذلك المسجل في نهاية كل دورة استخراج-تنفيذ، بعد انتهاء تنفيذ التعليمة الحالية؛ إذا تم تعيين العلم وكان للمقطع أولوية أعلى من المهمة الحالية، يتم حفظ محتويات PC والمسجلات الأخرى على الكدسة؛ يتم تحميل عنوان روتين خدمة المقاطعة في PC ويتم تشغيل الروتين؛ عند انتهائه، يتم استعادة القيم المحفوظة من الكدسة ويستمر البرنامج المقطوع من حيث توقف.
أسباب تستحق التسمية: مقطع أجهزة من جهاز (ضغط مفتاح، فارغ مخزن الطابعة، وصول حزمة شبكة)، مقطع برمجيات من خطأ (القسمة على صفر، تعليمة غير قانونية، فائض حسابي)، مقطع مؤقت من نظام التشغيل يحدد نهاية شريحة زمنية، وإنذار بانقطاع الطاقة.

| English | العربية |
|---|---|
| interrupt/ˈɪntərʌpt/ | انقطاع |
4.2
لغة التجميع والرمز الآلي
المنهج
| يجب أن يكون المرشحون قادرين على: | ملاحظات وإرشادات |
|---|---|
| أظهر فهماً للعلاقة بين لغة التجميع وكود الآلة | |
| وصف المراحل المختلفة لعملية التجميع لـ مُجمِّع ثنائي الممر | تطبيق عملية المُجمِّع ثنائي الممر على برنامج لغة تجميع بسيطة معطاة |
| تتبع برنامج لغة تجميع بسيط معطى | |
| إظهار الفهم بأن مجموعة من التعليمات تُجمَّع معًا | بما في ذلك المجموعات التالية: • نقل البيانات • إدخال وإخراج البيانات • العمليات الحسابية • تعليمات غير مشروطة ومشروطة • تعليمات المقارنة |
| إظهار الفهم والقدرة على استخدام أوضاع العنونة المختلفة | بما في ذلك الفورية، المباشرة، غير المباشرة، المؤشَّرة، النسبية |
المصدر: منهج كامبريدج الدولي
يقوم CPU فعلياً بتشغيل الرمز الآلي — أنماط البتات، محددة لمعمارية واحدة. لغة التجميع هي شكل مقروء، بتعليمة واحدة لكل تعليمة آلية، مكتوبة باستخدام أسماء رمزية مثل LDD، ADD، JMP. مجمع يترجمها إلى رمز آلي.

مجمع ثنائي المرور
يقوم مجمع ثنائي المرور بقراءة المصدر مرتين:
- المرحلة 1 تبني جدول الرموز: كل مرة يظهر فيها عنوان فرعي (مثل
LOOP:)، نسجل عنوانه؛ لم يتم إنتاج أي كود بعد. - المرحلة 2 تولد الكود: ترجم كل تعليمة، وعندما تشير إحداها إلى عنوان فرعي (مثل
JMP LOOP)، ابحث عن عنوانه في جدول الرموز.
المراوئان يتعاملان مع الإشارات الأمامية (قفزة إلى علامة مُعرفة لاحقاً).
مثال محلول. طبق عملية المجمع ثنائي المرور على هذا البرنامج، حيث تُخزن أول تعليمة فيه في العنوان 100.
LDD COUNT
LOOP: DEC ACC
CMP #0
JPN LOOP
END
COUNT: 5
تقرأ المرحلة 1 كل سطر، تحسب العنوان الذي سيحتله، وتسجل كل عناوين فرعية في جدول الرموز: LOOP = 101 (السطر DEC) وCOUNT = 105 (سطر البيانات). لا يتم إنتاج كود. تقرأ المرحلة 2 البرنامج مرة أخرى وترجم كل سطر إلى لغة الآلة، استبدال كل رمز بصيغة مختصرة برقمها الأوامر، وكل عنوان رمزي بالرقم من جدول الرموز: LDD COUNT يصبح أوامر لـ LDD مع عامل 105، وJPN LOOP يصبح أوامر لـ JPN مع عامل 101. كان بالإمكان حل القفز إلى LOOP في مرحلة واحدة، لكن القفز للأمام إلى عنوان فرعي لم يُرَ بعد لم يكن ممكناً، ولهذا يقوم المترجم بإجراء مرحلتين.
مجموعة تعليمات نموذجية
تستخدم كامبريدج مجموعة عامة صغيرة مطبوعة في جدول المرجع للورقة، مع مسجل واحد للاستخدام العام وهو المجمع (ACC)، ومسجل فهرسة (IX). المعامل المكتوب #n هو عدد عشري، Bn عدد ثنائي و&n عدد سداسي عشر؛ <address> هو رقم موقع أو علامة.
| المجموعة | التعليمة | ماذا تفعل |
|---|---|---|
| نقل البيانات | LDM #n |
تحميل الرقم n في ACC (فوري) |
LDD <address> |
تحميل محتويات العنوان في ACC (مباشر) | |
LDI <address> |
يحتوي العنوان على عنوان آخر؛حميل محتويات ذلك العنوان في ACC (غير مباشر) | |
LDX <address> |
إضافة IX إلى العنوان وتحميل محتويات النتيجة في ACC (فهرسي) | |
LDR #n |
تحميل الرقم n في IX | |
MOV <register> |
نسخ ACC إلى المسجل المسمى (IX) | |
STO <address> |
تخزين محتويات ACC عند العنوان | |
| الإدخال والإخراج | IN |
قراءة ضغط مفتاح ووضع كود ASCII الخاص به في ACC |
OUT |
إخراج الحرف الذي يكون كود ASCII الخاص به في ACC | |
| حسابي | ADD <address> / ADD #n |
إضافة محتويات العنوان، أو الرقم، إلى ACC |
SUB <address> / SUB #n |
طرح من ACC | |
INC <register> / DEC <register> |
إضافة 1 إلى، أو طرح 1 من، ACC أو IX | |
| مقارنة | CMP <address> / CMP #n |
مقارنة ACC مع محتويات العنوان، أو مع n، وتعيين العلم |
CMI <address> |
مقارنة ACC مع محتويات العنوان المحفوظ عند العنوان (غير مباشر) | |
| قفز | JMP <address> |
القفز إلى العنوان بشكل غير مشروط |
JPE <address> / JPN <address> |
القفز إذا كان آخر مقارنة مساوياً / غير مساوٍ | |
| معالجة البتات | AND، OR، XOR مع #n، Bn، &n أو <address> |
عملية على مستوى البت في المسجل ACC |
LSL #n / LSR #n |
إزاحة المنطقية لـACC بمقدار n خانة يساراً أو يميناً | |
END |
إنهاء البرنامج |
سؤال "تجميع تعليمات لغة التجميع" يطلب أسماء المجموعات وتعليمة واحدة من كل مجموعة: نقل البيانات، الإدخال والإخراج، الحساب، القفز غير المشروط والمشروط، المقارنة، ومعالجة البتات.
كيف يعمل مترجم التجميع ثنائي المرور
مرر الكود خطوة بخطوة. يقرأ المترجم الرمزي كودك مرتين: المرور 1 يبحث فقط عن مواقع كل العلامات المرجعية، لذا فإن المرور 2 يمكنه ملء العناوين — وهكذا يعمل القفز إلى علامة مرجعية مُعرَّفة لاحقًا.
| English | العربية |
|---|---|
| register/ˈredʒɪstə/ | مسجل |
| control unit/kənˈtrəʊl ˈjuːnɪt/ | وحدة التحكم |
| clock speed/klɒk spiːd/ | سرعة الساعة |
4.2
أوضاع العنونة
وضع العنونة (أو أوضاع العنونة) يوضح كيف يجد المعالج operand:
- العنونة الفورية — operand هو القيمة الموجودة في التعليمة.
LDM #10يحمل 10. - العنونة المباشرة — تحمل التعليمة عنواناً؛ والـoperand هي القيمة الموجودة هناك.
LDD 200. - العنوبة غير المباشرة — تحمل التعليمة عنواناً يحتوي على عنوان آخر، وهو البيانات.
LDI 200. - العنونة المؤشرية — العنوان الفعال هو
address + index register؛ تستخدم للمصفوفات.LDX 100مع IR = 5 يقرأ العنوان 105.
(العنونة النسبية تعطي العنوان كإزاحة عن PC — تستخدم للقفز.)

مثال محلول. الذاكرة تحتوي: الموقع 200 = 250، الموقع 250 = 99، الموقع 105 = 7. مسجل المؤشر يحتوي 5. ماذا يوجد في المسجل ACC بعد كل من LDM #200، LDD 200، LDI 200 و LDX 100؟ اتبع مدى البحث الذي يحتاجه كل وضع. LDM #200 هو فوري - operand هو الرقم المكتوب في التعليمة، لذا يحمل ACC 200. LDD 200 هو مباشر - اذهب إلى الموقع 200 وأخذ ما فيه: 250. LDI 200 هو غير مباشر - الموقع 200 يحتوي 250، وهو عنوان آخر، لذا استمر إلى الموقع 250: 99. LDX 100 هو مؤشري - أضف مسجل المؤشر إلى العنوان، $100 + 5 = 105$، واقرأ الموقع 105: 7. احسب القفزات لفصلها: فوري 0، مباشر 1، غير مباشر 2، مؤشري 1 (بعد إضافة المؤشر).
| English | العربية |
|---|---|
| operand/ˈɒpərænd/ | عامل |
| Index Register/ˈɪndeks ˈredʒɪstə/ | مسجل الفهرس |
| indexed addressing/ˈɪndekst əˈdresɪŋ/ | عنونة مؤشَّرة |
| general-purpose registers/ˈdʒenərəl ˈpɜːpəs ˈredʒɪstəz/ | مسجلات متعددة الأغراض |
| register transfer/ˈredʒɪstə ˈtrænsfɜː/ | انتقال المسجلات |
| control bus/kənˈtrəʊl bʌs/ | حاجز التحكم |
| addressing mode/əˈdresɪŋ məʊd/ | وضع العنونة |
| immediate addressing/ɪˈmiːdɪət əˈdresɪŋ/ | عنونة مباشرة |
| direct addressing/daɪˈrekt əˈdresɪŋ/ | عنونة فورية |
| indirect addressing/ɪndaɪˈrekt əˈdresɪŋ/ | عنونة غير مباشرة |
| relative addressing/ˈrelətɪv əˈdresɪŋ/ | عنونة نسبية |
| logical shift/ˈlɒdʒɪkl ʃɪft/ | إزاحة منطقية |
| cyclic shift/ˈsaɪklɪk ʃɪft/ | إزاحة دورية |
4.2
تتبع برنامج تجميع
لـتتبعه: قم بإنشاء جدول بأعمدة لـPC، ACC، مسجل المؤشر، كل متغير وأي علامات. مر عبر التعليمات، محدثاً الجدول بعد كل منها؛ اتبع الفروع عندما تغير PC؛ توقف عند END. نمط شائع هو حلقة تمر على مصفوفة باستخدام العنونة المؤشرية.
مثال محلول. تتبع هذا البرنامج. العنوان 200 يحتوي 5 والعنوان 201 يحتوي 0.
100 LDD 200
101 CMP #0
102 JPE 108
103 OUT
104 DEC ACC
105 STO 200
106 LDD 201
107 JMP 100
108 END
اكتب صف واحد لكل تعليمة يتم تنفيذها، مملئاً فقط الأعمدة التي تتغير:
| التعليمة | ACC | 200 | 201 | إخراج |
|---|---|---|---|---|
| بداية | 5 | 0 | ||
LDD 200 |
5 | |||
CMP #0 |
||||
JPE 108 |
لم تُتخذ | |||
OUT |
حرف بأكواد 5 | |||
DEC ACC |
4 | |||
STO 200 |
4 | |||
LDD 201 |
0 | |||
JMP 100 |
||||
LDD 200 |
4 |
وهكذا، حتى LDD 200 يحمل 0، تضع المقارنة علامة المساواة، JPE 108 تُتخذ وينتهي البرنامج. ثلاثة things يفحصهم الممتحن: a CMP لا يغير أي مسجل، بل علامة فقط؛ قفز لم يُتخذ يُحسب كتنفيذ؛ و OUT يخرج حرفاً، لذا يوضع في عمود الإخراج، وليس عمود ACC. "حدد تأثير تغيير LDD 10 إلى LDM #10": سيحمل ACC الرقم 10 بدلاً من محتوى العنوان 10.
4.3
إزاحات ثنائية
المنهج
| يجب أن يكون المرشحون قادرين على: | ملاحظات وإرشادات |
|---|---|
| إظهار الفهم وأداء الإزاحة الثنائية | المنطقية، الحسابية والدورانية إزاحة يسرى، إزاحة يمنى |
| إظهار الفهم لكيفية استخدام معالجة البتات لمراقبة/التحكم في جهاز | إجراء عمليات معالجة البتات اختبار وتعيين بت (باستخدام قناع البتات) |
| تسمية التعليمات | كود العملية | المعامل | شرح |
| AND #n / Bn / &n | عملية AND منطقية لمحتويات المسجل التراكمي مع المعامل |
| AND | عملية AND منطقية لمحتويات المسجل التراكمي مع محتويات |
| XOR #n / Bn / &n | عملية XOR منطقية لمحتويات المسجل التراكمي مع المعامل |
| XOR | عملية XOR منطقية لمحتويات المسجل التراكمي مع محتويات |
| OR #n / Bn / &n | عملية OR منطقية لمحتويات المسجل التراكمي مع المعامل |
| OR | عملية OR المنطقية للمحتويات المسجلة في ACC مع محتويات |
| LSL #n | يتم إزاحة البتات في المسجل التراكمي منطقياً بمقدار n خانات إلى اليسار. يتم إدخال أصفار في الطرف الأيمن |
| LSR #n | يتم إزاحة البتات في المسجل التراكمي منطقياً بمقدار n خانات إلى اليمين. يتم إدخال أصفار في الطرف الأيسر |
| يُسمِّي تعليمة | |
| يعطي عنواناً رمزياً | |
| جميع الأسئلة تفترض وجود مسجل الأغراض العامة واحد فقط متاح (المسجل التراكمي) يشير ACC إلى المسجل التراكمي يشير IX إلى مسجل المؤشر يمكن أن يكون عنواناً مطلقاً أو رمزياً يشير # إلى عدد عشري، مثال #123 يشير B إلى عدد ثنائي، مثال B01001010 يشير & إلى عدد سداسي عشر، مثال &4A |
المصدر: منهج كامبريدج الدولي
الإزاحة المنطقية تحرك جميع البتات يساراً أو يميناً بمقدار بعض الخانات، ملء المواقع الجديدة بـ0.
- إزاحة يسار بمقدار 1 (
LSL #1) — تتحرك البتات يساراً، يدخل 0 من اليمين؛ للرقم غير الإشارةي هذا هو × 2. - إزاحة يمين بمقدار 1 (
LSR #1) — تتحرك البتات يميناً، يدخل 0 من اليسار؛ للرقم غير الإشارةي هذا هو integer ÷ 2.
الإزاحة بمقدار $n$ خانات تضرب أو تقسم على $2^{n}$. مثال: 00001011 (11) LSL #1 → 00010110 (22).
البيتات المُزاحة من النهاية تُفقَد، لذا فإن عملية الضرب صحيحة فقط طالما كانت هذه البتات أصفاراً. عملية LSL #2 على عدد صحيح بتكامل الثمانيتين 11001010 تعطي 00101000: البتان 1 اللذان سقطا من اليسار ضيعا، وتغيرت بت الإشارة، ولم يعد الناتج أربعة أضعاف الأصل.
الإزاحة اليمنى الحسابية تحافظ على بت الإشارة ليظل العدد السالب الإشارة سالباً. الإزاحة الدائرية (دوران) تغذي البت الذي يسقط من أحد الطرفين مرة أخرى في الطرف الآخر، لذا لا تُفقد بتات.
"أظهر نتيجة إزاحة يمين حسابية بمقدار 3 خانات على 10011110": انسخ بت الإشارة في كل مكان شاغر، 11110011. نفس الإزاحة على 01011100 تعطي 00001011. إزاحة يسار دائرية بمقدار 1 على 10000110 تعطي 00001101: يظهر leading 1 مرة أخرى على اليمين.

الفرق بين إزاحتي اليمين هو بت واحد. خذ 11110000، وهو 240 مقروءً كعدد غير إشارةي و$-16$ مقروءً كعدد إشارةي. LSR #1 يجلب 0 ويعطي 01111000 $= 120$، وهو النصف الصحيح من 240. ASR #1 ينسخ بت الإشارة ويعطي 11111000 $= -8$، وهو النصف الصحيح من $-16$. لا أحدهما خاطئ — كل منهما ينصف القيمة تحت قراءة واحدة.

معالجة البتات للمراقبة/التحكم
الأجهزة المدمجة غالباً ما تستخدم بت واحد من المسجل لكل إشارة (مثلاً بت $n$ = LED $n$). باستخدام قناع — تخفيق البتات — يمكنك:
- ضبط بت $n$:
R = R ORقناعًا مع ضبط بت $n$. - إزالة بت $n$:
R = R ANDقناع ببت $n$ صفر والباقي مفعّل. - تبديل بت $n$:
R = R XORقناعًا مع ضبط بت $n$. - اختبار بت $n$:
R ANDالقناع، ثم تحقق مما إذا كان النتيجة غير صفرية.

معالجة البتات سريعة، وتستهلك ذاكرة قليلة، وتسمح لبايت واحد باستيعاب ما يصل إلى 8 حالات تشغيل/إيقاف.
في مجموعة تعليمات الامتحان هذه هي AND، OR وXOR مع كتابة قناع كعامل عشري أو ثنائي أو سداسي عشر. مع احتواء ACC على 10101100:
| التعليمات | القناع | النتيجة في ACC | التأثير |
|---|---|---|---|
AND B00001111 |
00001111 |
00001100 |
يحافظ فقط على أربع البتات السفلية (يمسح البتات الأخرى) |
OR #1 |
00000001 |
10101101 |
يضبط أقل بت أهمية، تاركة الباقي دون تغيير |
XOR &FF |
11111111 |
01010011 |
يعكس كل بت |
AND B00001000 ثم CMP #0 |
00001000 |
00001000 |
يختبر بت 3: المقارنة غير متساوية، لذا كان بت 3 مضبوطًا |
LSL #2 |
10110000 |
إزاحة لليسار مكانين، فقدان أعلى بتين | |
LSR #3 |
00010101 |
يزيح يميناً بثلاث أماكن، أصفار تدخل من اليسار |
"اكتب التعليمة التي تجعل أقل بت معنوية يساوي 1 وتترك الباقي دون تغيير": OR #1، أو OR B00000001. لإزالة بت استخدم AND مع قناع يحتوي على 0 في ذلك المكان و1s في الأماكن الأخرى؛ لاختبار بت، AND مع قناع يحتوي على 1 فقط في ذلك المكان، ثم قارن النتيجة بالصفر. في جهاز مراقبة، يسمح بت واحد من المسجل لكل مستشعر لأحد AND بالتحقق من تشغيل مستشعر معين، ويُمكّن OR واحد تشغيل بت التحكم في المؤثر دون الإضرار بالآخرين.
ازح وقلِّص بتات البايت
اختر عاملاً وعقب كل بت ناتج. الإزاحة اليسرى (<<) moves every bit up one place (×2); a right shift (>>) تنقلها لأسفل (÷2)؛ والـ AND مع قناع يُفرغ البتات التي لا تريدها.
| English | العربية |
|---|---|
| bit/bɪt/ | بت |
| mask/mæsk/ | قناع |
4.3
التعريفات التي يقبلها المصحح
تُصنّف أسئلة التعريف بناءً على صياغة ثابتة. احفظ هذه التعريفات بدقة، وقدم إجابة واحدة فقط.
| مصطلح | تعريف |
|---|---|
| مفهوم البرنامج المخزن | يتم الاحتفاظ بتعليمات البرنامج والبيانات معاً في الذاكرة الرئيسية، ويتم جلب التعليمات وتنفيذها واحدة تلو الأخرى |
| المسجلات | موقع تخزين صغير وسريع جداً داخل المعالج له غرض محدد |
| عداد البرنامج | المسجل الذي يحمل عنوان التعليمة التالية التي سيتم جلبها |
| مسجل عنوان الذاكرة | المسجل الذي يحمل عنوان موقع الذاكرة الذي يتم القراءة منه أو الكتابة إليه |
| مسجل بيانات الذاكرة | المسجل الذي يحمل البيانات أو التعليمة التي تم读取ها للتو من الذاكرة، أو التي سيتم كتابتها إليها |
| مسجل التعليمة الحالية | المسجل الذي يحمل التعليمة التي يتم فك تشفيرها وتنفيذها حالياً |
| المجمع | المسجل متعدد الأغراض الذي يحمل نتيجة آخر عملية حسابية أو منطقية |
| ذاكرة الكاش | ذاكرة صغيرة وسريعة قريبة من المعالج تحتفظ بالتعليمات والبيانات المستخدمة بشكل متكرر |
| المقاطعة | إشارة من جهاز أو برنامج تتسبب في إيقاف المعالج للمهمة الحالية وتشغيل روتين خدمة المقاطعة |
| لغة التجميع | لغة منخفضة المستوى حيث يقابل كل دليل mnemonic تعليمة واحدة من تعليمات الآلة |
| العنونة الفورية | العامل هو القيمة المكتوبة في التعليمة |
| العنونة المباشرة | العامل هو محتويات العنوان المكتوب في التعليمة |
| العنونة غير المباشرة | العنوان في التعليمة يحمل عنوان العامل |
| العنونة الفهرسية | عنوان العامل هو العنوان في التعليمة زائد محتويات مسجل الفهرس |
| العنونة النسبية | عنوان العامل معطى كإزاحة من عنوان التعليمة الحالية |
| الإزاحة المنطقية | يتحرك كل بت عدد Places المعطى وتعبئ الأصفار الـ Places الشاغرة |
4.3
نصائح للامتحان
- تعلم دورة الجلب والتنفيذ بمصطلحات نقل المسجلات (PC, MAR, MDR, CIR, ACC) وما يزيد PC.
- سمّ عمل كل مسجل؛ ناقل العناوين أحادي الاتجاه، ناقل البيانات ثنائي الاتجاه.
- ميز بين أوضاع العنونة (الفورية، المباشرة، غير المباشرة، الفهرسية) — سؤال شائع.
- اشرح كيف تؤثر سرعة الساعة، عدد النواة، حجم الكاش وطول الكلمة على الأداء.
- بالنسبة لـ الإزاحة الثنائية، حدد ما إذا كانت منطقية أو حسابية؛ الإزاحة اليسرى تضرب في 2، والإزاحة اليمنى تقسم على 2.
أخطاء شائعة
- قول أن PC يحمل التعليمة الحالية، أو أن MDR يحمل عنواناً. PC يحمل عنوان التعليمة التالية؛ MDR يحمل بيانات أو تعليمة، لا عنوان أبداً.
- ترك زيادة PC خارج الجلب، أو وضعها بعد التنفيذ. يحدث بمجرد نسخ العنوان إلى MAR.
- قراءة
LDD 10على أنها "حمل 10".LDD 10يحمل محتويات العنوان 10؛LDM #10يحمل الرقم 10. - وضع قيمة في عمود ACC لـ
CMPأوOUT. المقارنة تضع علامة فقط؛ الإخراج يذهب إلى عمود الإخراج. - قول أن المقاطعة تُعالج "فوراً". ينهي المعالج التعليمة الحالية ويتحقق من المقاطعات في نهاية الدورة.
- استخدام إزاحة يمنية منطقية على رقم مكمل اثنين سالب. فقط الإزاحة الحسابية تحافظ على بت الإشارة.
دروس تفاعلية حول هذا الموضوع
ا-working عليه خطوة بخطوة، مع تمارين تحقق فوري.