HSG |
|
Mit einem Text-Editor wird folgendes einfache C-Programm geschrieben und unter hello.c abgespeichert.
#include <stdio.h> int main( void ) { printf("Hello, world!\n"); return 0; }
Das Programm lässt sich mit dem GNU-C-Compiler gcc in die ausführbare Datei hello1 übersetzen.
gcc -o hello1 hello.c
Das Programm hello1 wird ausgeführt. Interessant ist seine Größe. Es wurden auf der Konsole elementare Befehle wie cd, ls, ... verwendet. Das Kommando ls -l zeigt auch die Zugriffsrechte.
Mit einem Text-Editor wird folgendes einfache Assembler-Programm geschrieben und unter hello2.asm abgespeichert.
.section .data hello: .ascii "Hallo Welt!\n" .section .text .globl _start _start: mov $4, %eax # 4 fuer den Syscall 'write' mov $1, %ebx # File Descriptor mov $hello, %ecx # Speicheradresse des Textes mov $12, %edx # Laenge des Textes int $0x80 # Interrupt auslösen mov $1, %eax # das mov $0, %ebx # uebliche int $0x80 # Beenden
Assemblieren, Linken, Ausführen
Vergleiche die Dateigrößen von hello1 und hello2.
Lies den wikipedia-Artikel zum Systemaufruf. Warum wird zum Aufruf ein Interrupt aufgerufen?