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?

Yeni satır olmadan:

Metin yazdırılır, ancak imleç aynı satırda kalır. Bundan sonraki tüm çıktılar hemen yanına yazılı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. Yeni satır yok. Her şey birbirine yapışmış.

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ında yazdırılır.

Yeni satırın yaptığı:

KarakterASCIIEtki
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 sonraki satıra geçer
Dizenin ortasında satır sonuSatır sonları beklenmedik yerlerde oluşur

Güvenli kural:

Kendi satırında görünmesini istediğin her dizenin sonuna daima 0x0a ekle.

challenge icon

Görev

Size satır sonu içermeyen üç dize veriliyor. Göreviniz, bunları ayrı satırlarda görünecek şekilde yazdırmaktır.

Dizeler şunlardır:

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

Gereksinimler:

  • Her dizenin sonuna satır sonu (0x0a) ekleyerek tanımlayın
  • Her dizenin uzunluğunu otomatik olarak hesaplayın
  • Üç dizenin tümünü write sistem çağrısını kullanarak yazdırın
  • 0 koduyla düzgün şekilde çıkın

Kendin dene

section .data
    ; TODO: word1'i talimatlarda listelenen 1. metin ve yeni satır karakteriyle tanımla
    ; TODO: word2'yi talimatlarda listelenen 2. metin ve yeni satır karakteriyle tanımla
    ; TODO: word3'ü talimatlarda 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