Menu
Coddy logo textTech

Mettere tutto insieme

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

Hai imparato tutti e quattro gli elementi della syscall write:

RegistroCosa contieneValore per l'output sullo schermo
raxNumero della syscall1 (write)
rdiDescrittore di file1 (stdout)
rsiIndirizzo del bufferIndirizzo della tua stringa
rdxNumero di byteLunghezza della tua stringa

Ora è il momento di mettere tutto insieme.

Lo schema completo della chiamata di sistema write:

mov rax, 1          ; numero di syscall per write
mov rdi, 1          ; descrittore di file (stdout)
mov rsi, msg        ; indirizzo della stringa
mov rdx, msgLen     ; numero di byte da stampare
syscall             ; chiedi al sistema operativo di stampare

Un programma completo funzionante:

section .data
    msg db 'Hello, World!', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

Cosa fa questo programma:

PassaggioCosa succede
1Stampa "Hello, World!" sullo schermo
2Va a capo
3Termina correttamente con il codice 0

L'ordine è importante:

Devi configurare i registri prima di eseguire syscall. L'ordine delle istruzioni mov non è importante, purché tutti e quattro siano impostati prima di syscall.

challenge icon

Sfida

Scrivi un programma completo che stampi il messaggio "Assembly is fun" seguito da una nuova riga, quindi termini correttamente.

La stringa e la sua lunghezza sono già definite. Devi solo scrivere il codice all'interno di _start:.

Provalo tu

section .data
    msg db 'Assembly is fun', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    ; TODO: Prepara e richiama la chiamata di sistema write
    ; Usa rax=1, rdi=1, rsi=msg, rdx=msgLen

    ; TODO: Termina correttamente con il codice 0
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