Menu
Coddy logo textTech

לשורה חדשה יש חשיבות

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

הוספת 0x0a (שורה חדשה) בסוף המחרוזות שלך. אבל מה קורה אם שוכחים להוסיף אותו?

ללא שורה חדשה:

הטקסט מודפס, אבל הסמן נשאר באותה שורה. כל פלט עתידי יופיע ממש לידו.

דוגמה ללא שורה חדשה:

section .data
    first db 'Hello'
    firstLen equ $ - first
    second db 'World'
    secondLen equ $ - second

section .text
    mov rax, 1
    mov rdi, 1
    mov rsi, first
    mov rdx, firstLen
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, second
    mov rdx, secondLen
    syscall

פלט:

HelloWorld

אין רווח. אין שורה חדשה. הכול מחובר יחד.

עם שורה חדשה:

section .data
    first db 'Hello', 0x0a
    firstLen equ $ - first
    second db 'World', 0x0a
    secondLen equ $ - second

פלט:

Hello World

כל מחרוזת מודפסת בשורה נפרדת.

מה עושה תו ירידת שורה:

תוASCIIהשפעה
0x0a10מעביר את הסמן לתחילת השורה הבאה

טעויות נפוצות בירידת שורה:

טעותתוצאה
אין ירידת שורה כללהטקסט מתחבר לשורה אחת
ירידת שורה רק בסוף המחרוזת האחרונההמחרוזות הקודמות מתחברות, והאחרונה עוברת לשורה הבאה
ירידת שורה באמצע מחרוזתמעברי שורה מתרחשים במקומות לא צפויים

הכלל הבטוח:

הוסף תמיד 0x0a בסוף כל מחרוזת שברצונך שתופיע בשורה משלה.

challenge icon

אתגר

נתונים לך שלושה מחרוזות ללא שורות חדשות. המשימה שלך היא להדפיס אותן כך שיופיעו בשלוש שורות נפרדות.

המחרוזות הן:

מחרוזתערך
word1'Apple'
word2'Banana'
word3'Cherry'

דרישות:

  • הגדר כל מחרוזת עם שורה חדשה (0x0a) בסוף
  • חשב את האורך של כל מחרוזת באופן אוטומטי
  • הדפס את כל שלוש המחרוזות באמצעות קריאת המערכת write
  • צא בצורה מסודרת עם קוד 0

נסו בעצמכם

section .data
    ; TODO: להגדיר את word1 עם הטקסט ה-1 המופיע בהוראות ותו ירידת שורה
    ; TODO: להגדיר את word2 עם הטקסט ה-2 המופיע בהוראות ותו ירידת שורה
    ; TODO: להגדיר את word3 עם הטקסט ה-3 המופיע בהוראות ותו ירידת שורה
    ; TODO: לחשב את האורך של כל מחרוזת

section .text
    global _start

_start:
    ; TODO: להדפיס את word1
    ; TODO: להדפיס את word2
    ; TODO: להדפיס את word3

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

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

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

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