Menu
Coddy logo textTech

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 (yeni satır) ekliyorsunuz. Peki bunu unutursanız ne olur?

Satır sonu olmadan:

Metin yazdırılır, ancak imleç aynı satırda kalır. Gelecekteki tüm çıktılar hemen yanında görünür.

Yeni satır 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. Satır sonu yok. Her şey birbirine yapışık.

Satır sonuyla:

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

Çıktı:

Hello World

Her string kendi satırında yazdırılır.

Satır sonunun yaptığı:

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

Yaygın satır sonu hataları:

HataSonuç
Hiç satır sonu yokMetin tek satırda birleşir
Yalnızca son dizenin sonunda satır sonuÖnceki dizeler birleşir, sonuncusu bir sonraki satıra geçer
Bir dizenin ortasında satır sonuBeklenmeyen yerlerde satır sonları oluşur

Güvenli kural:

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

challenge icon

Görev

Yeni satır karakteri içermeyen üç dize verilmiştir. Göreviniz, bunları üç ayrı satırda görünecek şekilde yazdırmaktır.

Dizeler şunlardır:

DizeDeğer
word1'Apple'
word2'Banana'
word3'Cherry'

Gereksinimler:

  • Her dizeyi sonunda bir yeni satır karakteri (0x0a) olacak şekilde tanımlayın
  • Her dizenin uzunluğunu otomatik olarak hesaplayın
  • Üç dizenin tamamını write sistem çağrısını kullanarak yazdırın
  • 0 koduyla temiz bir şekilde çıkın

Kendin dene

section .data
    ; TODO: word1'i talimatlarda listelenen 1. metin ve satır sonu ile tanımla
    ; TODO: word2'yi talimatlarda listelenen 2. metin ve satır sonu ile tanımla
    ; TODO: word3'ü talimatlarda listelenen 3. metin ve satır sonu ile tanımla
    ; TODO: Her dize için uzunlukları hesapla

section .text
    global _start

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

    ; TODO: Temiz bir ş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