Menu
Coddy logo textTech

מחברים הכול יחד

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

למדת את כל ארבעת החלקים של קריאת המערכת write:

אוגרמה הוא מכילערך לפלט למסך
raxמספר קריאת המערכת1 (write)
rdiמתאר קובץ1 (stdout)
rsiכתובת המאגרכתובת המחרוזת שלך
rdxמספר הבתיםאורך המחרוזת שלך

עכשיו הגיע הזמן לשלב את כולם יחד.

תבנית קריאת המערכת write המלאה:

mov rax, 1          ; מספר קריאת המערכת עבור write
mov rdi, 1          ; מתאר קובץ (stdout)
mov rsi, msg        ; כתובת המחרוזת
mov rdx, msgLen     ; מספר הבתים להדפסה
syscall             ; בקש ממערכת ההפעלה להדפיס

תוכנית עובדת מלאה:

section .data
    msg db 'Hello, World!', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

מה התוכנית הזאת עושה:

שלבמה קורה
1מדפיסה "Hello, World!" למסך
2עוברת לשורה חדשה
3יוצאת בצורה תקינה עם קוד 0

הסדר חשוב:

עליך להגדיר את האוגרים לפני ביצוע syscall. הסדר של הוראות mov אינו חשוב, כל עוד כל ארבעת האוגרים מוגדרים לפני syscall.

challenge icon

אתגר

כתבו תוכנית מלאה שמדפיסה את ההודעה "Assembly is fun" ואחריה שורה חדשה, ואז מסתיימת בצורה תקינה.

המחרוזת והאורך שלה כבר מוגדרים. עליכם לכתוב רק את הקוד בתוך _start:.

נסו בעצמכם

section .data
    msg db 'Assembly is fun', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    ; TODO: להכין ולקרוא לקריאת המערכת write
    ; השתמשו ב־rax=1, rdi=1, rsi=msg, rdx=msgLen

    ; TODO: לסיים באופן תקין עם קוד 0
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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