PlanetXML

Hello World in Assembler

Einen guten Einstieg in die Assembler-Programmierung bietet das Buch Programming From The Ground Up von Jonathan Bartlett, das auch als Ebook erhältlich ist. Die Beispiele im Buch beziehen sich allerdings auf Linux und können und Windows nicht ohne Änderungen verwendet werden, da sie direkt auf Kernelfunktionen zugreifen.

Um die ersten Beispiele des Buchs auf Windows zu portieren muss man daher die Kernelaufrufe durch die entsprechende Funktionen der C-Bibliothek ersetzen, die dann natürlich mit dem Programm zusammengelinkt werden muss. Die Pfade beim Aufruf des Linkers müssen eventuell angepasst werden.

Assemblieren

as helloworld.s -o helloworld.o

Linken

ld helloworld.o -Lc:\programme\mingw\lib -lcrtdll -o helloworld.exe 

Quellcode

.section .data
helloworld:
.ascii "Hello World\n"

.section .text

.globl _start
_start:
    pushl $helloworld
    call _printf

    pushl $0
    call _exit