Menu
Coddy logo textTech

Alles zusammenfügen

Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy — Lektion 39 von 45.

Sie haben alle vier Teile des write-Syscalls gelernt:

RegisterInhaltWert für die Bildschirmausgabe
raxSyscall-Nummer1 (write)
rdiDateideskriptor1 (stdout)
rsiPufferadresseAdresse Ihres Strings
rdxByte-AnzahlLänge Ihres Strings

Jetzt ist es an der Zeit, alles zusammenzufügen.

Das vollständige write-Syscall-Muster:

mov rax, 1          ; Syscall-Nummer für write
mov rdi, 1          ; Dateideskriptor (stdout)
mov rsi, msg        ; Adresse des Strings
mov rdx, msgLen     ; Anzahl der zu druckenden Bytes
syscall             ; das Betriebssystem zum Drucken auffordern

Ein vollständiges, funktionierendes Programm:

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

Was dieses Programm macht:

SchrittWas passiert
1Gibt "Hello, World!" auf dem Bildschirm aus
2Wechselt in eine neue Zeile
3Beendet sauber mit Code 0

Die Reihenfolge ist wichtig:

Sie müssen die Register einrichten, bevor Sie syscall ausführen. Die Reihenfolge der mov-Anweisungen spielt keine Rolle, solange alle vier vor syscall gesetzt sind.

challenge icon

Aufgabe

Schreiben Sie ein vollständiges Programm, das die Nachricht "Assembly is fun" gefolgt von einem Zeilenumbruch ausgibt und sich dann sauber beendet.

Der String und seine Länge sind bereits definiert. Sie müssen nur den Code innerhalb von _start: schreiben.

Probier es selbst

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

section .text
    global _start

_start:
    ; TODO: Den write-Syscall einrichten und aufrufen
    ; Verwende rax=1, rdi=1, rsi=msg, rdx=msgLen

    ; TODO: Sauber mit Code 0 beenden
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen