2012-04-16 27 views
22

Zrobiłem programowanie zespołów ARM i chciałbym nauczyć się Assemblera Intela. Wciąż słyszę wszystkie te różne F/M/N/ASM-y, ale nie jestem pewien, w jaki sposób odnoszą się one do tego, co chcę osiągnąć?ASM: MASM, NASM, FASM?

Czy ktoś mógłby mi pomóc określić, czego potrzebuję, aby nauczyć się programować niski poziom architektury Intel? Nie do końca rozumiem, w jaki sposób "różne asemblery" korelują, jeszcze bardziej z x86, IA64, AMD64/x86-64 itd.?

Jeśli to pomoże, najbardziej odpowiada mi środowisko IDE Eclipse i Visual Studio 08/10.

+0

zależy w pewnym stopniu od preferowanego systemu operacyjnego - Windows? Linux? Mac OS X ? Inny ? –

+0

Co będzie używane w systemie Mac OS X? – Aristides

Odpowiedz

16

MASM (Microsoft Asembler) to popularny asembler dla systemu Windows. MASM jest przeznaczony dla aplikacji 16-bitowych i 32-bitowych (x86). ML64 jest dla 64-bitowych (AMD64/x86-64 źródeł)

NASM (nasm) to popularny asemblera dla Linuksa, ale jest dostępny na Windows też. NASM obsługuje programy 16-bitowe, 32-bitowe i 64-bitowe.

FASM (Flat Asembler) jest dostępny dla systemów Windows i Linux. FASM również obsługuje zarówno programy 32-bitowe, jak i 64-bitowe.

Sądzę, że wolisz wybrać MASM zgodnie z Twoimi wymaganiami.

+1

NASM jest również dostępny dla systemu Windows. – stmax

+0

@stmax zaktualizowany! dzięki :) –

+0

Dzięki Pavan. Czy są jakieś różnice w składni? – user997112

0

Wystarczy powiedzieć o tym, RosAsm to windows tylko 32 bity asemblera, który ma kilka interresting punktów jak

  • zintegrowana IDE czyli self-skompilowany z kodu dostępnego źródła
  • NASM składni inspirowane
  • potężny system makr do projektowania języków wysokiego poziomu
  • Szczególności do przechowywania kodu źródłowego wewnątrz produkowanych. Exe i. Dll (w sekcji PE).

chodzi o wsparcie 64 bitów, RosAsm został żaden, ale jednym z jego autorów, pracuje obecnie w 64 bitach przepisać (BUAsm, asemblera oddolne)