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