סיכום: בניית 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.
דוגמה לקובץ <strong>data.asm</strong> מלא:
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 אונליין