Menu
CoddyTech

סיכום: בניית data.asm

חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 30 מתוך 45.

challenge icon

אתגר

למדת כמה דרכים להגדיר נתונים במקטע .data:

שיעורמה למדת
3.1מקטע .data, שבו נמצאים הנתונים
3.2db: הגדרת בית (בית אחד)
3.3dw: הגדרת מילה (2 בתים)
3.4dd: הגדרת מילה כפולה (4 בתים)
3.5dq: הגדרת מילה מרובעת (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 מלא עם הפריטים הבאים:

  1. מחרוזת בשם welcome עם הערך 'Welcome!' ואחריו שורה חדשה (0x0a)
  2. קבוע בשם welcomeLen שמחשב את האורך אוטומטית באמצעות $ - welcome
  3. בית בשם score עם הערך 99
  4. מילה בשם year עם הערך 2025
  5. מילה כפולה בשם population עם הערך 8500000
  6. מילה מרובעת בשם 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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Assembly אונליין