תבנית שני הקבצים
חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 5 מתוך 45.
לאורך הקורס הזה, תכתבו כל תוכנית באמצעות שני קבצים נפרדים:
| קובץ | מטרה |
|---|---|
data.asm | מאחסן את כל הנתונים (מחרוזות, מספרים, משתנים) |
main.asm | מאחסן את כל הקוד (הוראות, לוגיקה, זרימה) |
האסמבלר אינו דורש זאת. אפשר לשים הכול בקובץ אחד. אבל הפרדה בין הקוד לנתונים הופכת את התוכניות שלך למסודרות יותר, קלות יותר לקריאה וקלות יותר לניפוי שגיאות.
למה שני קבצים?
- ארגון: לנתונים ולקוד יש מטרות שונות. הפרדתם עוזרת לך לחשוב בבהירות.
- שימוש חוזר: אפשר להשתמש באותו
data.asmעם קובציmain.asmשונים.
- קריאות: אף פעם לא צריך לגלול דרך מחרוזות ארוכות כדי למצוא את הקוד שלך.
- נוהג מקובל בתעשייה: בפרויקטים אמיתיים מפרידים בין קוד לנתונים (אם כי לעיתים קרובות בדרכים מורכבות יותר).
איך זה עובד:
הקובץ main.asm כולל את הקובץ data.asm באמצעות ההנחיה %include. ההנחיה אומרת לאסמבלר: "הוסף כאן את כל התוכן של 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 | הופכת את נקודת הכניסה לגלויה למקשר | main.asm |
_start: | תווית שבה מתחילה הרצת התוכנית | main.asm |
אין צורך לשנן כרגע את
section .data, אתsection .text, אתglobal _startאו את_start:. נלמד כל אחת מהפקודות האלה בפירוט בשיעורים הבאים. כרגע, פשוט הסתכלו על התמונה הגדולה והבינו את המבנה של שני הקבצים.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: Assembly אונליין