As you know, most CPUs implement the x86-64 instruction set.
NASM is more or less build to allow programmers to easily write more or less x86-64 code...
I don't doubt that it does this properly...
However, due to the x86-64 standard being pretty old, many chip producers designed their chips in a way so that they could do more...
By adding new instructions...
Some of these "additions", I see, are part of NASMs repertoire...
That leads to a few questions:
What are these NASM instructions compiled to? Are they compiled to the corresponding x86-64 additive instructions, or are they rather emulated using normal x86-64 instructions?
What happens if I run a NASM program containing such instructions on a CPU that does not support them? will the program crash? Or does NASM make the programs in a way such that they, for example, check the CPU kind on startup and adapt?
Does NASM cover all important additions made to the x86-64 instruction set over the past decades?