סיכום: בניית data.asm
חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 30 מתוך 45.
אתגר
למדת כמה דרכים להגדיר נתונים במקטע .data:
| שיעור | מה למדת |
|---|---|
| 3.1 | מקטע .data, שבו נמצאים הנתונים |
| 3.2 | db: הגדרת בית (בית אחד) |
| 3.3 | dw: הגדרת מילה (2 בתים) |
| 3.4 | dd: הגדרת מילה כפולה (4 בתים) |
| 3.5 | dq: הגדרת מילה מרובעת (8 בתים) |
| 3.6 | מחרוזות עם db: יצירת טקסט |
| 3.7 | הסמל $: חישוב אוטומטי של אורכי מחרוזות |
עכשיו הגיע הזמן לחבר את הכול ולבנות קובץ data.asm מלא.
מה תיצור באתגר הזה:
קובץ data.asm שמכיל:
- מחרוזת עם חישוב אורך אוטומטי
- ערך של בית
- ערך של מילה
- ערך של מילה כפולה
- ערך של מילה מרובעת
הכול מאורגן כראוי במקטע .data.
דוגמה לקובץ data.asm מלא:
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000למה זה חשוב:
בפרקים הבאים תשתמש בקובצי data.asm כאלה כדי לאחסן את הנתונים שהתוכניות שלך צריכות. הקובץ main.asm יכלול את קובץ ה-data.asm שלך וישתמש בתוויות ובאורכים שהגדרת.
אתגר
צור קובץ data.asm מלא עם הפריטים הבאים:
- מחרוזת בשם
welcomeעם הערך 'Welcome!' ואחריו שורה חדשה (0x0a) - קבוע בשם
welcomeLenשמחשב את האורך אוטומטית באמצעות$ - welcome - בית בשם
scoreעם הערך 99 - מילה בשם
yearעם הערך 2025 - מילה כפולה בשם
populationעם הערך 8500000 - מילה מרובעת בשם
starsעם הערך 100000000000
הכול בתוך מקטע .data.
נסו בעצמכם
%include "data.asm"
section .text
global _start
_start:
; הדפס את מחרוזת קבלת הפנים
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; צא
mov rax, 60
mov rdi, 0
syscallכל השיעורים ביחידה יסודות
4הגדרת נתונים
מקטע .datadb - הגדרת ביתdw - הגדרת מילהdd - הגדרת מילה כפולהdq - הגדרת מילה מרובעתמחרוזות עם dbהסימן $סיכום: בניית data.asmתרגלו בעצמכם: Assembly אונליין