Zum Inhalt springen

ASM86

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 12. März 2025 um 15:06 Uhr durch imported>Eriosw (Ref language).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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

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: [Internetquelle: archiv-url ungültig Linux assemblers: A comparison of GAS and NASM.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 13. Januar 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).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: [Internetquelle: archiv-url ungültig The Creation of Unix.] Bell Labs, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 13. Januar 2015 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).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

<references />