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