wake-up-neo.com

ASM: MASM, NASM, FASM?

Ich habe ARM Assembly-Programmierung gemacht und möchte den Intel Assembler lernen. Ich höre immer wieder all diese verschiedenen erwähnten F/M/N/ASMs - aber ich bin mir nicht sicher, in welchem ​​Verhältnis sie zu dem stehen, was ich erreichen möchte?

Könnte mir bitte jemand helfen, herauszufinden, was ich zum Programmieren auf niedriger Ebene in der Intel-Architektur benötigen würde? Ich verstehe nicht ganz, wie die "verschiedenen Assembler" korrelieren, noch mehr mit x86, IA64, AMD64/x86-64 etc?

Wenn es hilfreich ist, fühle ich mich mit den IDEs von Eclipse und Visual Studio 08/10 am wohlsten.

24
user997112

MASM (Microsoft Assembler) ist der beliebte Assembler für Windows. MASM steht für 16-Bit- und 32-Bit-Anwendungen (x86). ML64 ist der Code für 64-Bit-Quellen (AMD64/x86-64)

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

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

Ich nehme an, Sie würden es vorziehen, MASM entsprechend Ihren Anforderungen auszuwählen.

20
Pavan Manjunath

Um nur zu sagen, RosAsm ist ein Windows-Assembler mit nur 32 Bit, der mehrere interessante Punkte wie hat

  • ein integriertes IDE, das mit dem verfügbaren Quellcode selbst kompiliert wird
  • eine von NASM inspirierte Syntax
  • ein leistungsfähiges Makrosystem für das Design von Hochsprachen
  • die Besonderheit, den Quellcode innerhalb der erzeugten EXE- und DLL-Dateien (in einem PE-Abschnitt) zu speichern.

In Bezug auf die 64-Bit-Unterstützung hat RosAsm nur einen Mitwirkenden, der derzeit an einem 64-Bit-Rewrite arbeitet (BUAsm, der Bottom-Up-Assembler).

0
Seki