views:

1039

answers:

14

For anyone who works with x86 assembly, I'm curious which assembler you use.

Preferably, the name should be an acronym and end in "ASM" =)

+3  A: 

I use nasm.

I have used masm and gas in the past. I prefer nasm.

Joshua
Nasm is really great stuff.
DrJokepu
+2  A: 

I haven't worked with Assembler in a few years, but when I did it was typically MASM. Did a little FASM as well.

Jess
I don't actually do much assembly but I get in a WinDbg mode from time to time and it's back to MASM!
JaredPar
A: 

"gcc"

Sorry it doesn't fit the spec, but I haven't done more than a few dozen lines of assembler in the last 10 years.

Paul Tomblin
Do you recommend using gcc and the asm directive in place of TASM, FASM, NASM, GAS, or MASM?
Thomas L Holaday
If all you need is to optimize a handful of lines of code into vectorized SSE operations then yes, it's definitely useful. If you're doing more serious work I'd recommend a serious assembler.
Adam Hawes
@tlholaday, no, I recommend using a high level language or C unless you *really* *really* need to do something you can't do in C.
Paul Tomblin
Actually I'm a big fan of inline assembly too. (used sparingly, of course, like fats oils and sweets)
zildjohn01
+2  A: 

I've used both MASM & TASM in the past. Before that I used Macro-80.

Ferruccio
+2  A: 

Gas

greyfade
+9  A: 

In the past, I've always used NASM. I looked at moving to FASM or YASM for 64-bit work, but at the time YASM was not really mature and FASM's syntax was slightly different from my beloved NASM. I think NASM has acquired 64-bit support in recent releases (H. Peter Anvin picked up maintenance a while ago, and had been doing a great job whipping it back into shape last I looked), and I'd go back to it before considering another assembler, if I actually come across anything worth my time to rewrite in assembly (which hasn't happened in a couple years now).

kquinn
I was mostly confused with the NASM/YASM situation. I heard all the NASM developers moved to YASM for some reason, and NASM was dead. But of course you can never trust what you read.Good to see it picked back up. I hate it when good projects like that die out :(
zildjohn01
Actually NASM was dead quite a long time, but it has come back to haunt the living again. For a new project I have recently moved to FASM, and I really like it.
drhirsch
FASM only worked on Windows, at one time, but I heard there was a *nix version but it was buggy.
Rob
+5  A: 

FASM.

Irwin
+1  A: 

I've primarily used masm in the past. I've toyed with tasm but never liked it quite as well.

+2  A: 

Borland's TASM for its Ideal mode.

And getting a bit of help from assembler with distant conditional jumps is an icing in the cake, however anathema it is with regards to one-to-one correspondence of assembly and final machine code.

Michael Buen
+6  A: 

Definitely FASM. Not only for the amount of systems it supports, but because of it's speed and small installation footprint (no matter what OS, they are all under 1mb). The error checking is also great in FASM. NASM-like syntax makes it easier to make the change if you are already a NASM user. If you are interested in making a hobby OS, it also self compiles so you can easily port your code (without having to port gcc). The executables it produces are also usually the smallest out of the assemblers I have tried, and (more often than not) faster. It's a great piece of code.

John T
A: 

YASM, 2a (plan9 ASM)

plan9assembler
A: 

I have used Borland Turbo Assembler. I loooooooved it. Especially because of the (at that time) state of the art debugger that came with it.

After that, I've used Microsoft Assembler, and lately, I try to limit myself to inline assembly when nothing else works.

But honestly, nothing can be compared to the Turbo Assembler (because of its ideal mode).

Filip P.
A: 

Netwide Assembler (NASM) I love Intel syntax... is cleany, easy and have many output formats.

Sharek
A: 

i have only used MASM

ruchir patwa