Author Topic: Why use NASM?  (Read 7441 times)

Offline AXUEJIA

  • New Member
  • Posts: 1
Why use NASM?
« on: August 28, 2017, 12:03:04 AM »
I cannot imagine why any reasonably intelligent programmer would choose NASM over Microsoft's MASM. That assembler was written by Microsoft's professional programmers and maintained by them for more than thirty-five years. Windows contains much code assembled by MASM.

Offline Frank Kotler

  • NASM Developer
  • Hero Member
  • *****
  • Posts: 2667
  • Country: us
Re: Why use NASM?
« Reply #1 on: August 28, 2017, 12:29:07 AM »
You seem to assume that "any reasonably intelligent programmer" is using Windoze. This is not my experience. Quite the contrary. Suit yourself.

Best,
Frank


Offline stressful

  • Full Member
  • **
  • Posts: 105
  • Country: 00
    • CPU2.0
Re: Why use NASM?
« Reply #2 on: August 28, 2017, 07:40:04 AM »
I think the O.P. is suggesting the without Windows expensive products, we are no longer able to program the CPU aka the Windows IS the CPU. That's no intelligent.  ::)


 

Offline sal55

  • Jr. Member
  • *
  • Posts: 18
Re: Why use NASM?
« Reply #3 on: September 10, 2017, 03:22:16 PM »
I cannot imagine why any reasonably intelligent programmer would choose NASM over Microsoft's MASM. That assembler was written by Microsoft's professional programmers and maintained by them for more than thirty-five years. Windows contains much code assembled by MASM.

Exactly; it's 35 years old and probably contains 35 years of baggage. Last time I looked (20 or 30 years ago), it looked like it wanted to be a high-level assembler, with types attached to labels, and basically making it considerably more of a pain to write assembly than it already is. I've no idea what it's like now.

Also, looking at the current download, it says it's only 1MB, but it also says it needs Visual Studio 2015, which is more of a 6000MB download (expanding to an unknown size on disk). Nobody at Microsoft knows how to keep anything small and compact.

In other words, it's a monster.

Nasm, while not particularly small, is a self-contained 0.9MB executable.

(I write most Nasm code by generating it from a compiler. Any manually written code is usually inline ASM within a HLL function, in Nasm format. For this purpose, you don't need any high level features; even Nasm is overkill. MASM would be a nightmare.)