ASM86
ASM86 wurde von der Firma Intel als Assembler für deren x86-Prozessor-Familie vertrieben. Heute wird er nicht mehr vertrieben oder weiterentwickelt. Seine Syntax ist jedoch weit verbreitet unter x86-Assemblern wie dem Netwide Assembler, dem Microsoft Macro Assembler oder Borlands Turbo Assembler. Die Syntaxen heutiger x86-Assembler basieren meistens auf der des ASM86 oder sind identisch mit dieser, daher ist sie auch allgemein als „Intel Syntax“ oder „Intel Assembler Syntax“ bekannt.
Syntaxunterschiede[Bearbeiten]
Für x86-Assembly gibt es zwei vorherrschende Syntaxen: Intel-Syntax und AT&T-Syntax.<ref name="GASvsNASM">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Unter Windows dominiert die Intel-Syntax, im GNU/Linux-Ökosystem dagegen die AT&T-Syntax.<ref>Vorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Bell Labs, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
| AT&T | Intel | |
|---|---|---|
| Parameterreihenfolge | Erst Quelle, dann Ziel<syntaxhighlight lang="asm">mov $5, %eax</syntaxhighlight> | Erst Ziel, dann Quelle<syntaxhighlight lang="asm">mov eax, 5</syntaxhighlight> |
| Parametergröße | Mnemonics erhalten ein Suffix, das für die Operandenlänge steht: q = QWord, l = DWord, w = Word b = Byte.<ref name="GASvsNASM"/> <syntaxhighlight lang="asm">addl $4, %esp</syntaxhighlight> | <syntaxhighlight lang="asm">add esp, 4</syntaxhighlight> |
| Sigils | Unmittelbare Werte haben Präfix “$”, Register “%”.<ref name="GASvsNASM"/> | |
| Effektive Adressen | DISP(BASE,INDEX,SCALE). Beispiel: <syntaxhighlight lang="asm">movl mem_location(%ebx,%ecx,4), %eax</syntaxhighlight> | Beispiel: <syntaxhighlight lang="asm">mov eax, [ebx + ecx*4 + mem_location]</syntaxhighlight> |
Skriptfehler: Ein solches Modul „Vorlage:Siehe auch“ ist nicht vorhanden.
Einzelnachweise[Bearbeiten]
<references />