Das erste Programm "Hello World": Unterschied zwischen den Versionen

Aus C und Assembler mit Raspberry
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 17: Zeile 17:
</syntaxhighlight>
</syntaxhighlight>


Damit wir schnell was sehen, Kompilieren, Linken und führen das Programm aus:


<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">

Version vom 20. November 2024, 11:13 Uhr

Nach der ersten Theorie wollen wir endlich mal etwas Programmieren. In den meisten Programmiersprachen wird mit einem einfachen Programm begonnen, welches oft einfach auf den Bildschirm ein "Hello World" ausgibt. Auch hier machen wir dies.

.global _start //Definition der Einsprungsadresse als GLOBAL 
_start:        //Label, für den Start des Programms
    mov x0,#1  //Setze das Register x0 auf 1 (StdOutput)
    ldr x1,=helloworld //In x1 ein Zeiger auf den String
    mov x2,#13 //x2 wird die Länge des Strings angegeben
    mov x8,#64 //Systemcall für Output
    svc 0 //Führe den Systemcall aus
    mov x0,#0 //x0 auf 0: Kein Fehler
    mov x8,#93 //Systemcall für Exit
    svc 0 //Führe den Systemcall aus

.data //Definition des Datenbereichs
helloworld: //Label für den String, der angezeigt werden soll
    .ascii "Hello World!\n" //Der String selbst

Damit wir schnell was sehen, Kompilieren, Linken und führen das Programm aus:

as -o HelloWorld.o HelloWorld.s
ld -o HelloWorld HelloWorld.o
./HelloWorld