Author Topic: Announcing NASM-X v1.4  (Read 27428 times)

Offline Rob Neff

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 429
  • Country: us
Announcing NASM-X v1.4
« on: March 16, 2014, 05:21:48 PM »
The NASM-X team is proud to announce that NASM-X v1.4 is available for download.

The NASM-X Project is a collection of macros, includes, and examples, which are meant to help NASM programmers develop 32-bit and 64-bit BSD, Linux, Windows, and XBOX software in a fraction of the time it normally takes.

The following 32-bit and 64-bit Operating Systems are officially supported with this release:
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Linux
  • Windows
All supported OSes have fully functional demos that you can assemble and run.
You can choose the appropriate download for your distribution:

    Linux/BSD -

    Windows -

The following changes are made available in this release:
  • Fixed INVOKE stack alignment bug
  • Enhanced INVOKE to save and restore register eax/rax when used
      in parameter arguments if necessary
  • Optimized USES macro
  • Corrected x64 register parameter spill behavior
  • Corrected various Windows structure definitions
  • Deprecated previous FASTCALL_STACK_PRELOAD pragma
  • Nasm v2.11 or greater now required due to preprocessor fixes
  • Updated Windows distribution "bin" directory with Nasm v2.11.02
  • Updated html docs and Windows Compiled Help Modules
Please read the CHANGES.TXT file for latest updates and any README.TXT files located in the package.

We hope you find NASM-X useful in your own development efforts.
Thank you and enjoy!

Offline nasm32

  • Jr. Member
  • *
  • Posts: 25
Re: Announcing NASM-X v1.4
« Reply #1 on: April 01, 2015, 04:14:01 PM »
I was looking for include files for nasm and I found a ton of them in nasmx and I dont have to create them myself, it's so much work, I appreciate the help from the people who made these include files for me. (It seems as if I have the entire windows library worth of include files now)

These are not just ordinary include files they seems to be organized in a luxurious way. This saved me at least 4 months of work. I hope the include files are correct and don't disappoint. Other assemblers often come with bad include files. So far the nasmx include files haven't made me disappointed. I'm nervous when I'm using them, but it seems to be consistent so far.

nasm32 uses nasmx. nasmx for nasm32.
« Last Edit: April 01, 2015, 04:47:45 PM by nasm32 »

Offline agguro

  • Jr. Member
  • *
  • Posts: 4
Re: Announcing NASM-X v1.4
« Reply #2 on: April 09, 2015, 09:17:15 AM »
Hello, I got a suggestion for a small change in the nasmx file.
Since I use syscalls sometimes without macro arguments I modified this file (for 64 bits) into:

%imacro syscall 0-7.nolist
%if %0 > 0

[ here comes the original macro ]

  syscall  ; again, the opcode, not the macro

We can use this macro without arguments and just the opcode for syscall will be generated.
If there are no errors residing from this modification, I suggest to modify in the next release?
Since I don't use 32 bits a lot I don't have a modification for this macro but it can also be done in a next release..... perhaps.

it's just a suggestion.

Offline agguro

  • Jr. Member
  • *
  • Posts: 4
Re: Announcing NASM-X v1.4
« Reply #3 on: April 09, 2015, 09:23:39 AM »
found a bug:

the instruction on line 40 is wrong (I hope I'm wrong :) )

%elifnidi %{7}, r9 , gives an error when assembling
if I look up why six arguments can be passed without error I see on line 55

%elifnidni %{6}, r8

so line 40 must be:

%elifnidni %{7}, r9

Offline Rob Neff

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 429
  • Country: us
Re: Announcing NASM-X v1.4
« Reply #4 on: April 09, 2015, 03:57:43 PM »
Thank you for the excellent feedback.  We'll get this added when time permits.

Offline ben321

  • Full Member
  • **
  • Posts: 182
Re: Announcing NASM-X v1.4
« Reply #5 on: August 15, 2023, 07:50:00 AM »
Interesting project, is it possible to use macros with NASM to write assembly code for any architecture? For example, in SNES assembly, there's not the 8 main registers found in an Intel chip. There's only 3 main registers, and they are called A, X, and Y. Is it possible to "teach" NASM, using macros to recognize other registers for other system architectures? Or are its hardcoded Intel register names the only register names that can be used in NASM? How extensible is NASM in terms of using macros to define assembly code for other architectures?

Offline Frank Kotler

  • NASM Developer
  • Hero Member
  • *****
  • Posts: 2667
  • Country: us
Re: Announcing NASM-X v1.4
« Reply #6 on: August 15, 2023, 08:53:09 AM »
Unlikely to work on another cpu. Nothing to lose but your time trying.