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

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:informatik:oberstufe:techinf:assembler:hallowelt:start [22.07.2021 10:59] sbelfaecher:informatik:oberstufe:techinf:assembler:hallowelt:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== 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: 
- 
-<code assembler> 
-; 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 
- 
-</code> 
  
  • faecher/informatik/oberstufe/techinf/assembler/hallowelt/start.1626944368.txt.gz
  • Zuletzt geändert: 22.07.2021 10:59
  • von sbel