faecher:informatik:oberstufe:techinf:assembler:hallowelt:start

Dies ist eine alte Version des Dokuments!


Hallo Welt!

Traditionell betrachtet man bei der Annhäherung an eine neue "Computersprache" oft ein Hallo-Welt-Programm.

Damit die Codebeispiele funktionieren müssen die folgenden Voraussetzungen erfüllt sein:

  • Linux als BS
  • nasm als Assembler muss installiert sein

Hier also ein Hallo Welt für mit Assemblerbefehlen für Linux:

; Hello World in Assembler
; 
; Uebersetzen:
; nasm -f elf hello.asm
; ld -m elf_i386 -s -o hello hello.o
 
; Speichervariablen 
SECTION .data
msg:    db  "Hello World!",10 ; db - 1 Byte
                              ; 10 - Newline
 
len:    equ $-msg             ; Berechnung der Laenge der 
                              ; Speichervariablen msg
                              ; benoetigt für die Ausgabe 
                              ; Im Beispiel 13
 
global _start ; Label fuer den Programmstart
 
SECTION .text
 
_start:
; Initialisieren und ausfuehren des
; Linux syscalls fuer Ausgabe an STDOUT
 mov eax,4    ; Syscall-ID (4 = sys_write)
 mov ebx,1    ; Ausgabe-Descriptor (1 = stdout)
 mov ecx,msg  ; Adresse des ersten Zeichens (msg)
 mov edx,len  ; Laenge der Zeichenkette (berechnet als len)
 int 80h      ; Softwareinterrupt 0x80, um den Syscall 
              ; (write(1,msg,len)) auszufuehren
; Programm beenden
 mov eax,1    ; Syscall-ID (1 = exit)
 mov ebx,0    ; Rueckgabewert 0 (Alles in Ordnung)
 int 80h      ; Softwareinterrupt 0x80, um den Syscall
              ; auszuführen
  • faecher/informatik/oberstufe/techinf/assembler/hallowelt/start.1626944368.txt.gz
  • Zuletzt geändert: 22.07.2021 08:59
  • von sbel