Menu
CoddyTech

Yeni Satırın Önemi

Coddy'nin Assembly Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 41 / 45.

Dizelerinizin sonuna 0x0a (satır sonu) ekliyorsunuz. Peki bunu unutursanız ne olur?

Satır sonu olmadan:

Metin yazdırılır, ancak imleç aynı satırda kalır. Daha sonra yazdırılacak her şey hemen yanına gelir.

Satır sonu olmadan örnek:

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

Çıktı:

HelloWorld

Boşluk yok. Yeni satır yok. Her şey birbirine yapışık.

Yeni satırla:

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

Çıktı:

Hello
World

Her dize kendi satırına yazdırılır.

Yeni satır ne yapar:

KarakterASCIIEtki
0x0a10İmleci sonraki satırın başına taşır

Yaygın satır sonu hataları:

HataSonuç
Hiç satır sonu olmamasıMetin tek satırda birleşir
Yalnızca son dizenin sonunda satır sonu olmasıÖnceki dizeler birleşir, sonuncusu sonraki satıra geçer
Bir dizenin ortasında satır sonu olmasıSatırlar beklenmeyen yerlerde bölünür

Güvenli kural:

Kendi satırında olmasını istediğin her dizenin sonuna her zaman 0x0a ekle.

challenge icon

Görev

Satır sonu içermeyen üç karakter dizisi veriliyor. Göreviniz, bunları üç ayrı satırda görünecek şekilde yazdırmaktır.

Karakter dizileri:

Karakter dizisiDeğer
word1'Apple'
word2'Banana'
word3'Cherry'

Gereksinimler:

  • Her karakter dizisini sonunda satır sonu (0x0a) olacak şekilde tanımlayın
  • Her karakter dizisinin uzunluğunu otomatik olarak hesaplayın
  • write sistem çağrısını kullanarak üç karakter dizisinin tümünü yazdırın
  • 0 koduyla düzgün biçimde çıkın

Kendin dene

section .data
    ; TODO: word1'i yönergelerde listelenen 1. metin ve yeni satır karakteriyle tanımla
    ; TODO: word2'yi yönergelerde listelenen 2. metin ve yeni satır karakteriyle tanımla
    ; TODO: word3'ü yönergelerde listelenen 3. metin ve yeni satır karakteriyle tanımla
    ; TODO: Her dizgenin uzunluğunu hesapla

section .text
    global _start

_start:
    ; TODO: word1'i yazdır
    ; TODO: word2'yi yazdır
    ; TODO: word3'ü yazdır

    ; TODO: Programdan düzgün şekilde çık
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Assembly playground