Menu
CoddyTech

المسجلات مقابل الذاكرة

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

لقد تعلمت الآن عن مكانين يمكن أن توجد فيهما البيانات داخل الكمبيوتر:

  • السجلات: صناديق تخزين صغيرة داخل وحدة المعالجة المركزية
  • الذاكرة (RAM): شبكة ضخمة من الخانات المرقمة خارج وحدة المعالجة المركزية

لكن لماذا يوجد مكانان؟ لماذا لا تحتفظ وحدة المعالجة المركزية بكل شيء في الذاكرة؟

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

مقارنة جنبًا إلى جنب:

الميزةالسجلاتالذاكرة (RAM)
الموقعداخل وحدة المعالجة المركزيةخارج وحدة المعالجة المركزية
السرعةسريعة للغاية (دورة واحدة)أبطأ (دورات عديدة)
عدد خانات التخزينقليل جدًا (16-32 على x86-64)ملايين أو مليارات
حجم كل خانة8 بايت (64 بت)1 بايت
طريقة الوصول إليهابالاسم (rax، rbx، rcx...)بالعنوان (1000، msg، buffer)
متطايرة؟نعم (تختفي عند انقطاع التيار)نعم (تختفي عند انقطاع التيار)

أهم قاعدة في لغة التجميع:

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

السجلات هي أيضًا المكان الذي تحتفظ فيه بالقيم التي تعمل بها، لأن كل عملية وصول إلى الذاكرة بطيئة.

النمط المكوّن من ثلاث خطوات الذي ستستخدمه باستمرار:

الخطوةما يحدثمثال
1. LOADانسخ البيانات من الذاكرة إلى سجلmov rax, [count]
2. WORKنفّذ شيئًا باستخدام السجلadd rax, 5
3. STOREانسخ النتيجة مجددًا إلى الذاكرة (إذا لزم الأمر)mov [result], rax

ماذا يحدث إذا نسيت هذه القاعدة؟

إذا حاولت جمع عددين موجودين في الذاكرة، فسيعطيك المُجمِّع خطأً. لا تستطيع وحدة المعالجة المركزية فعل ذلك. يجب أن تحمّل أحدهما في سجل أولًا.

جرّب بنفسك

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

quiz iconاختبر نفسك

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

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

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