On Wed, Dec 30, 2009 at 07:01:28PM +0100, Per Jessen wrote:
Which assembler do I pick for i386 and x86_64 ? I see a few different ones out there - nasm, gas, yasm, lzasm, fasm, probably many others too. I am a long-time TASM user, and very familiar with it, and I have a lot of code around written for TASM. yasm is supposed to be able to mimick tasm, but last I tried it didn't work very well or support was very limited. If it wasn't for TASMs obvious lack of support for anything that happened after 1998, I would still be using that, but I really need a modern assembler. If I have to learn new format, so be it. Any recommendations? I've been taking some baby steps with nasm, but I'm not overly impressed with it sofar.
I'm not really familiar with yasm, lzasm or fasm, but I personally use this rule of thumb: (i) If I have bunch of Intel-syntax assembler source I need to compile, or I need to do something very raw, I use nasm. (ii) Otherwise, I use gas. I think these two projects are most likely to never fall out of maintenance and continue gaining support for whatever new architectures and instructions coming by (especially gas is virtually guaranteed to stay alive as long as GNU/Linux does), and they are usually installed on any Linux with a development toolchain, so I wonder what compelling advantages the other assemblers have. gas uses very different syntax from what the Intel assembly hackers are used to, but it's worth learning it - you will gain access to assembly of pretty much any architecture out there, you can use the integrated assembly support in gcc, you can read gdb's disass output, etc etc. -- Petr "Pasky" Baudis A lot of people have my books on their bookshelves. That's the problem, they need to read them. -- Don Knuth -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org