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

Offline Rob Neff

  • Forum Moderator
  • Full Member
  • *****
  • Posts: 430
  • 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 - http://sourceforge.net/projects/nasmx/files/nasmx-1.4/linux/

    Windows - http://sourceforge.net/projects/nasmx/files/nasmx-1.4/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
  • Added pragmas PROC_FASTCALL_STACK_PRELOAD and INVOKE_FASTCALL_STACK_PRELOAD
  • 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 syscall.inc 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 ]

%else
  syscall  ; again, the opcode, not the macro
%endif 
%endmacro

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 syscalls.inc 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: 430
  • 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.