Menu
CoddyTech

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

חלק מהיחידה יסודות במסלול ה-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 אונליין