Jetzt sind wir bereit für unser erstes Programm, das übliche Hello, World!
1: %include 'system.inc' 2: 3: section .data 4: hello db 'Hello, World!', 0Ah 5: hbytes equ $-hello 6: 7: section .text 8: global _start 9: _start: 10: push dword hbytes 11: push dword hello 12: push dword stdout 13: sys.write 14: 15: push dword 0 16: sys.exit
Hier folgt die Erklärung des Programms: Zeile 1 fügt die Definitionen ein, die Makros und den Code aus system.inc.
Die Zeilen 3 bis 5 enthalten die Daten: Zeile 3 beginnt den Datenabschnitt/das
Datensegment. Zeile 4 enthält die Zeichenkette "Hello, World!", gefolgt von einem
Zeilenumbruch (0Ah
). Zeile 5 erstellt eine Konstante, die
die Länge der Zeichenkette aus Zeile 4 in Bytes enthält.
Die Zeilen 7 bis 16 enthalten den Code. Beachten Sie bitte, dass FreeBSD das
Dateiformat elf für diese
ausführbare Datei verwendet, bei dem jedes Programm mit dem Label _start
beginnt (oder, um genau zu sein, wird dies vom Linker
erwartet). Diese Label muss global sein.
Die Zeilen 10 bis 13 weisen das System an hbytes
Bytes
der Zeichenkette hello
nach stdout
zu schreiben.
Die Zeilen 15 und 16 weisen das System an das Programm mit dem Rückgabewert 0
zu beenden. Der Systemaufruf SYS_exit
kehrt niemals zurück, somit endet das Programm hier.
Anmerkung: Wenn Sie von MS-DOS®-Assembler zu UNIX® gekommen sind, sind Sie es vielleicht gewohnt direktauf die Video-Hardware zu schreiben. Unter FreeBSD müssen Sie sich darum keine Gedanken machen, ebenso bei jeder anderen Art von UNIX. Soweit es Sie betrifft schreiben Sie in eine Datei namens stdout. Das kann der Bildschirm, oder ein telnet-Terminal, eine wirkliche Datei, oder die Eingabe eines anderen Programms sein. Es liegt beim System herauszufinden, welches davon es tatsächlich ist.
Geben Sie den Code (außer den Zeilennummern) in einen Editor ein und speichern Sie ihn in einer Datei namens hello.asm. Um es zu assemblieren benötigen Sie nasm.
Wenn Sie nasm noch nicht installiert haben geben Sie folgendes ein:
% su Password:your root password # cd /usr/ports/devel/nasm # make install # exit %
Sie können auch make install clean anstatt make install eingeben, wenn Sie den Quelltext von nasm nicht behalten möchten.
Auf jeden Fall wird FreeBSD nasm automatisch aus dem Internet herunterladen, es kompilieren und auf Ihrem System installieren.
Anmerkung: Wenn es sich bei Ihrem System nicht um FreeBSD handelt, müssen Sie nasm von dessen Homepage herunterladen. Sie können es aber dennoch verwenden um FreeBSD code zu assemblieren.
Nun können Sie den Code assemblieren, binden und ausführen:
% nasm -f elf hello.asm % ld -s -o hello hello.o % ./hello Hello, World! %
Zurück | Zum Anfang | Weiter |
Portablen Code erzeugen | Nach oben | UNIX®-Filter schreiben |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.