ASM: MASM, NASM, FASM?

余生颓废 提交于 2019-12-03 03:12:02

问题


I have done ARM assembly programming and I would like to learn the Intel Assembler. I keep hearing all these different F/M/N/ASMs mentioned- but I am unsure how they related to what I wish to achieve?

Could somebody please help me identify what I would need to learn how to program low level on the Intel architecture? I dont quite understand how the "different Assemblers" correlate, even more so with x86, IA64, AMD64/x86-64 etc?

If it is of any help, I am most comfortable with Eclipse and Visual Studio 08/10 IDEs.


回答1:


MASM (Microsoft Assembler) is the popular assembler for Windows. MASM is for 16-bit and 32-bit applications(x86). ML64 is the one for 64 bit sources (AMD64/x86-64)

NASM (Netwide Assembler) is the popular assembler for Linux but is available on Windows too. NASM supports 16-bit, 32 bit and 64 bit programs.

FASM (Flat Assembler) is available for both Windows and Linux. FASM too supports both 32-bit and 64-bit programs.

So I guess you would prefer choosing MASM according to your requirements.




回答2:


Just to tell about it, RosAsm is a windows only 32 bits assembler that has several interresting points like

  • an integrated IDE that is self-compiled with available source code
  • a NASM inspired syntax
  • a powerful macro system for high level language design
  • the particularity to store the source code inside the produced .exe and .dll (in a PE section).

Concerning the 64 bits support, RosAsm has none but one of its contributors is currently working on a 64 bits rewrite (BUAsm, the Bottom-Up assembler)



来源:https://stackoverflow.com/questions/10179933/asm-masm-nasm-fasm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!