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, %esp | add 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 0x21 | pop 0x21 |
Registername | Typischer 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