Metainformationen zur Seite
  •  

Assembler

abc; hier Kommentar
## Befehlsreferenz: - https://www.i8086.de/asm/8086-88-asm.html - https://runtimebasic.net/Assembler:Funktionen:Beschreibung-Kurz-CPU

Besonderes bei AT&T: - Mnemonics erhalten ein Suffix, das für die Operandenlänge steht: q = QWord, l = DWord, w = Word b = Byte (z.B add → addl) - Unmittelbare Werte haben Präfix “$”, Register “%” (zB $5,%epa)

AT&T Intel
kopiere „5“ in eax mov $5, %eax mov eax, 5
addiere 4 zu esp addl $4, %espadd esp, 4
(bitweise ) xor ax ax = Register auf setzen XOR AX,AX
Speichere den Wert der Adresse 0x20 auf dem Stack push 0x20
Hole den obersten Wert vom Stack und speichere ihn in der Adresse 0x21pop 0x21
RegisternameTypischer Verwendungszweck
eax Zwischenwerte bei Berechnungen, Rückgabewerte, allgemein verwendbar, spezielle Bedeutung bei Arithmetikbefehlen
ebx Basisadresse für Adressierungen, allgemein verwendbar
ecx Zählregister in Schleifen, IndexedxI/O–Daten, Double-Precision–Operationen,allgemein verwendbar, spezielle Bedeutung bei Schleifen
edx allgemein verwendbar
esi Speicheradresse von String–Quelloperand (eng: source)
edi Speicheradresse von String–Zieloperand (eng: destination)
ebp Basepointer
esp Stackpointer

https://www4.cs.fau.de/Lehre/WS09/V_BS/Uebungen/oostubs/assembler.shtml