The combination of JWasm and JWlink is a very good choice. You could also visit Bogdan's site to try the Solar Assembler :
SOLAR Assembler is a modern multipass macro assembler that can compile 16/32/64 bits code and runs on Windows, Linux, MacOSX and Solar_OS
Solar Assembler can create portable executables without the usage of a linker.
How is it possible to create a portable executable that uses different APIs
This assertion seems to contradict the first Assembly Language dogma: the
code [even source] written in Assembly is not portable among different systems.
This is why they invented C, mainly, to bypass that problem.
If this problem has been solved by Solar-ASM it is quite a good news.