Port to more generally used YASM assembler

Tested - OK.
Also fixed calling convention to use the SYSV ABI even when compiling under Windows (such as with the  MingW64 compiler). We can do this because the functions are not to be exported system-wide.