Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

كيف تعمل التعليمات

جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 4 من 45.

أنت تعرف أن وحدة المعالجة المركزية تنفّذ التعليمات واحدة تلو الأخرى. ولكن كيف تعرف وحدة المعالجة المركزية أي تعليمة عليها تشغيلها بعد ذلك؟ وأين تُخزَّن التعليمات؟ وكيف تبدو التعليمة فعليًا؟

التعليمات هي أرقام.

هذه حقيقة أساسية عن أجهزة الكمبيوتر. كل شيء عبارة عن رقم. البيانات التي تعمل معها (مثل الرقم 42) هي رقم. والعنوان الذي توجد فيه البيانات (مثل 1000) هو رقم. والتعليمات نفسها (مثل mov وadd وcmp) هي أيضًا أرقام.

عندما تكتب تعليمات assembly مثل mov rax, 5، يحوّل المُجمِّع هذا النص القابل للقراءة من الإنسان إلى رقم يفهمه CPU. يُسمّى هذا الرقم رمز التعليمة.

أين تُخزَّن التعليمات؟

تُخزَّن التعليمات في الذاكرة، تمامًا مثل البيانات. لا يوجد مكان خاص للتعليمات. تحتوي الذاكرة على كليهما:

  • البيانات (الأرقام، والمحارف، والمصفوفات)
  • التعليمات (البرنامج نفسه)

لا تعرف وحدة المعالجة المركزية الفرق. فهي ببساطة تقرأ أيًّا كان الموجود في عنوان الذاكرة الذي يشير إليه عدّاد البرنامج. لقد تعلّمت عن PC بإيجاز في الدرس 0.1. والآن حان الوقت لفهم كيفية عمله بالضبط.

عداد البرنامج (ويُسمى أيضًا مؤشر التعليمات) هو سجل خاص داخل وحدة المعالجة المركزية. مهمته الوحيدة هي الاحتفاظ بعنوان الذاكرة للتعليمة التالية التي سيتم تنفيذها.

دورة الجلب والتنفيذ:

تكرر وحدة المعالجة المركزية هذه الخطوات الثلاث إلى الأبد:

الخطوةما يحدث
1. FETCHRead instruction عند address الموجود في PC
2. EXECUTEPerform تلك instruction
3. ADVANCEMove PC إلى instruction التالية next

مثال بسيط:

إذا كان PC = 1000، فإن CPU:

  • يجلب instruction عند address 1000
  • ينفّذها
  • ينقل PC إلى next address (1000 + instruction size)

ثم يتكرر ذلك باستخدام قيمة PC الجديدة.

كيف تبدو التعليمة:

تتكوّن كل تعليمة من جزأين:

الجزءما الذي يفعلهمثال
Opcodeما يجب القيام بهmov، add، cmp
Operandsما الذي تُجرى عليه العمليةrax، 5، [result]

بعض التعليمات لها مُعامل واحد (مثل inc rax لإضافة 1). وبعضها لها مُعاملان (مثل mov rax, 5). وبعضها لها ثلاثة مُعاملات (مثل add rax, rbx, rcx في بعض البنى المعمارية).

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Assembly