|
|
Inhaltsverzeichnis
Assembler: Strukturen
Dies ist eine kurze Erklärung der Grundstrukturen eines Assembler-Programms. 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-CallPUSH 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/VerzweigungCMP 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 |