2012-04-16 8 views
22

Ich habe ARM-Assembly-Programmierung gemacht und würde gerne den Intel Assembler lernen. Ich höre immer wieder all diese verschiedenen F/M/N/ASMs, aber ich bin mir nicht sicher, wie sie sich auf das beziehen, was ich erreichen möchte.ASM: MASM, NASM, FASM?

Könnte mir bitte jemand helfen, herauszufinden, was ich lernen müsste, um Low-Level auf der Intel-Architektur zu programmieren? Ich verstehe nicht ganz, wie die "verschiedenen Assembler" korrelieren, noch mehr mit x86, IA64, AMD64/x86-64 etc?

Wenn es irgendeine Hilfe ist, bin ich am besten mit Eclipse und Visual Studio 08/10 IDEs.

+0

hängt etwas von Ihrer bevorzugten Betriebssystem - Windows-? Linux? Mac OS X ? Andere ? –

+0

Was würde für Mac OS X verwendet werden? – Aristides

Antwort

16

MASM (Microsoft Assembler) ist der populäre Assembler für Windows. MASM ist für 16-Bit- und 32-Bit-Anwendungen (x86). ML64 ist die eine für 64-Bit-Quellen (AMD64/x86-64)

NASM (Netwide Assembler) ist die beliebte Assembler für Linux, ist aber auf Windows auch zur Verfügung. NASM unterstützt 16-Bit-, 32-Bit- und 64-Bit-Programme.

FASM (Flat Assembler) ist für Windows und Linux verfügbar. FASM unterstützt auch 32-Bit- und 64-Bit-Programme.

Also ich denke, Sie würden bevorzugen, MASM nach Ihren Anforderungen zu wählen.

+1

NASM ist auch für Windows verfügbar. – stmax

+0

@stmax aktualisiert! Danke :) –

+0

Danke Pavan. Gibt es Unterschiede in der Syntax? – user997112

0

nur davon zu erzählen, RosAsm ist ein Fenster nur 32-Bit-Assembler, die mehrere interresting Punkte wie

  • eine integrierte IDE, die selbst erstellte mit Code Quelle
  • eine inspirierte NASM Syntax hat
  • ein leistungsfähiges Makro-System für High-Level-Sprachdesign
  • die Besonderheit, den Quellcode innerhalb der erzeugten .exe und .dll (in einem PE-Abschnitt) zu speichern.

die 64-Bit-Unterstützung angeht, RosAsm hat niemand, aber eine der Mitwirkenden arbeitet derzeit an einem 64 umzuschreiben (BUAsm, der Bottom-Up-Assembler)