Menu
Coddy logo textTech

L'importanza della nuova riga

Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 41 di 45.

Hai aggiunto 0x0a (nuova riga) alla fine delle tue stringhe. Ma cosa succede se te ne dimentichi?

Senza nuova riga:

Il testo viene stampato, ma il cursore rimane sulla stessa riga. Qualsiasi output successivo apparirà subito accanto.

Esempio senza nuova riga:

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

Output:

HelloWorld

Nessuno spazio. Nessuna nuova riga. Tutto è attaccato.

Con nuova riga:

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

Output:

Hello World

Ogni stringa viene stampata su una riga propria.

Cosa fa il carattere di nuova riga:

CarattereASCIIEffetto
0x0a10Sposta il cursore all'inizio della riga successiva

Errori comuni con le nuove righe:

ErroreRisultato
Nessuna nuova rigaIl testo si unisce su un'unica riga
Nuova riga solo alla fine dell'ultima stringaLe stringhe precedenti si uniscono, l'ultima passa alla riga successiva
Nuova riga nel mezzo di una stringaInterruzioni di riga in punti inaspettati

La regola sicura:

Aggiungi sempre 0x0a alla fine di ogni stringa che vuoi su una riga a sé.

challenge icon

Sfida

Ti vengono date tre stringhe senza nuove righe. Il tuo compito è stamparle in modo che appaiano su tre righe separate.

Le stringhe sono:

StringaValore
word1'Apple'
word2'Banana'
word3'Cherry'

Requisiti:

  • Definisci ogni stringa con una nuova riga (0x0a) alla fine
  • Calcola automaticamente la lunghezza di ogni stringa
  • Stampa tutte e tre le stringhe usando la chiamata di sistema write
  • Termina correttamente con il codice 0

Provalo tu

section .data
    ; TODO: Definisci word1 con il 1° testo elencato nelle istruzioni e un carattere di nuova riga
    ; TODO: Definisci word2 con il 2° testo elencato nelle istruzioni e un carattere di nuova riga
    ; TODO: Definisci word3 con il 3° testo elencato nelle istruzioni e un carattere di nuova riga
    ; TODO: Calcola la lunghezza di ogni stringa

section .text
    global _start

_start:
    ; TODO: Stampa word1
    ; TODO: Stampa word2
    ; TODO: Stampa word3

    ; TODO: Termina il programma correttamente
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Assembly