Assembler
Ein Assembler ist genaugenommen ein Compiler, der den Code eines "Assemblerprogramms" in Maschinensprache, d. h. Nullen und Einsen übersetzt. Anders als ein C Compiler hat es der Assembler jedoch sehr einfach, da (fast immer) einer Assembleranweisung genau eine Maschinensprachenanweisung entspricht. Das Assemblerprogramm ist also nur eine für Menschen (etwas) komfortablere Darstellung des Maschinenprogramms.
Beispiele
Hello World in ASM
section .text global _start ; für den Linker (ld) notwendig msg db 'Hello world',0x0A ; unser Text incl. Zeilenumbruch LF (0x0A) len equ $ - msg ; Länge des Textes berechnen (12 Bytes) _start: ; Programmstart für Linker mov eax,4 ; Systemaufruf Nr. 4 (sys_write) Textausgabe mov ebx,1 ; Ausgabekanal Nr.1 = stdout mov ecx,msg ; Adresse unseres Textes im Speicher mov edx,len ; Länge des Textes in Bytes int 0x80 ; Kernel aufrufen mit obigen System-Aufrufparametern mov eax,1 ; Systemaufruf Nr. 1 (sys_exit) Programmende int 0x80 ; Kernel aufrufen mit obigen System-Aufrufparametern
- Übersetzung unter Linux:
- nasm -f elf hello.asm (Übersetzen)
- ld -s -o hello hello.o (Linken)
- ./hello (ausführen)
Links
http://ivs.cs.uni-magdeburg.de/bs/lehre/sose99/bs1/seminare/assembler.shtml

