نمط الملفين
جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 5 من 45.
خلال هذه الدورة، ستكتب كل برنامج باستخدام ملفين منفصلين:
| الملف | الغرض |
|---|---|
data.asm | يخزّن جميع data (السلاسل النصية والأرقام وvariables) |
main.asm | يخزّن جميع التعليمات البرمجية (instructions والمنطق والتدفق) |
هذا ليس مطلوبًا من المُجمِّع. يمكنك وضع كل شيء في ملف واحد. لكن فصل التعليمات البرمجية عن البيانات يجعل برامجك أكثر تنظيمًا، وأسهل قراءةً، وأسهل تصحيحًا.
لماذا ملفان؟
- التنظيم: للبيانات والتعليمات البرمجية أغراض مختلفة. يساعدك إبقاؤهما منفصلين على التفكير بوضوح.
- إعادة الاستخدام: يمكنك استخدام ملف
data.asmنفسه مع ملفاتmain.asmمختلفة.
- سهولة القراءة: لن تضطر أبدًا إلى التمرير عبر سلاسل نصية طويلة للعثور على التعليمات البرمجية الخاصة بك.
- ممارسة شائعة في المجال: تفصل المشاريع الحقيقية بين التعليمات البرمجية والبيانات (وإن كان ذلك غالبًا بطرق أكثر تعقيدًا).
كيف يعمل:
يتضمن الملف main.asm الملف data.asm باستخدام التوجيه %include. وهذا يخبر المُجمِّع: "أدرج المحتويات الكاملة للملف data.asm هنا مباشرةً قبل التجميع."
الملفان جنبًا إلى جنب:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (توجد variables هنا) | section .text |
global _start | |
_start: | |
| (توجد instructions هنا) |
ما الذي يفعله كل قسم:
| القسم | الغرض | أي ملف؟ |
|---|---|---|
section .data | يحتوي على البيانات الموجودة في الذاكرة عند تشغيل البرنامج | data.asm |
section .text | يحتوي على التعليمات القابلة للتنفيذ (التعليمة البرمجية) | main.asm |
global _start | يجعل نقطة الدخول مرئية للرابط | main.asm |
_start: | التسمية التي يبدأ عندها تنفيذ البرنامج | main.asm |
لا تحتاج إلى حفظ
section .dataأوsection .textأوglobal _startأو_start:الآن. سنتناول كلًّا من هذه الأوامر بالتفصيل في الدروس التالية. في الوقت الحالي، ألقِ نظرة على الصورة العامة وافهم بنية الملفين.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2أنظمة العد
لماذا النظام الثنائي؟الأعداد الثنائيةمن العشري إلى الثنائيلماذا النظام الست عشري؟من الست عشري إلى العشريمن العشري إلى الست عشريASCII والست عشري5استدعاء النظام Exit Syscall
ما هو الـ Syscall؟استدعاء النظام Exit Syscall (60)رموز الخروج (Exit Codes)ملخص: الخروج النظيف (Clean Exit)تدرّب بنفسك: Playground لـ Assembly