Assembler: Strukturen

WRITEME noch nicht vollständig

Dies ist eine kurze Erklärung der Grundstrukturen eines Assembler-Programms.
Dabei werden die ASM-Dateien, und Eigenschaften wie Call-Aufrufe Schleifen und Verzweigungen erklärt.

Modul-Basis

.386                   ;Unterstützter Funktionssatz (386 486 586...)
.MODEL Flat, STDCALL   ;Code Modell
 
.DATA
    ;{...Interne initialisierte Daten}
 
.DATA?
    ;{...Interne nicht initialisierte Daten}
 
.CONST
    ;{...Konstanten}
 
.CODE
  <Name>
      ;{...Code}
  end <Name>
 
  ;{... weitre Prozeduren}

ASM-Datei

;=== Globale Namen Importieren
§

;=== Eigene Routinen Public deklarieren
§

;=== Konstanten
§

;=== Daten
§

;=== Programmstart
§

ASM-Call

PUSH Par2
PUSH Par1
CALL
 
	PUSH	EBP
	MOV	EBP, ESP
	SUB	ESP, 20     Plat für Interne variabeln
 
.
.
PROC
PUSH Reg                  ;Register Sichern
.
Par1 = EBP+4
Par2 = EBP+8
.
.
;<<< Code
.
.
MOV EAX, Wert ;Return = EAX wird als Standard Rückgabewert verwenden
.
POP Reg                   ;Register Sichern
RET
 
;EAX wird als Standard Rückgabewert verwenden. Alle anderen Register gelten als Flüchtig/Temporär

ASM-Vergleich/Verzweigung

    CMP reg, 3         ;reg <?> 3
    JB GoHer1          ;If <= Then Goto GoHer1
 
    TEST reg, 3        ;reg <?> 3 (Schneller als CMP)
    JZ GoHer1          ;If = Then Goto GoHer1

ASM-Schleife

; For i = 1 to 3
    MOV reg, i
GoHerFor1:              ;Rücksprung zum Schleifen Kopf
.
.
 
; Next
    INC reg            ;i = i + 1
    CMP reg, 3         ;reg <?> 3
    JNG GoHerFor1      ;If <= Then Goto GoHerFor1

 

Assembler/Strukturen.txt · Zuletzt geändert: 2008/03/04 19:16 (Externe Bearbeitung)