0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-10-10 00:25:06 -04:00
H. Peter Anvin 48f7170772 insns.pl: sanity-check that instruction encodings match operands
Error out if an encoding position is invalid, like an "r" operand
matches an "xmmrm" operand.

Document the instruction encoding symbols; there are too many of them
by now.

Add symbols 'n' and 'w' meaning immediates that are supposed to be
encoded as if they were 'm' memory addresses and 'v' register numbers,
respectively; this is necessary to indicate a validation exception.

Remove broken ARPL "memory-like" encoding. It probably never worked
anyway.

This verification caught two bugs already:

- VPMASKMOV[DQ] cannot omit the second operand.

- Incorrect operand encoding order for VREDUCESH.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-30 12:06:11 -07:00
2010-04-25 12:02:38 +04:00
2022-01-09 17:34:35 +01:00
2025-08-15 16:54:17 -07:00
2025-09-05 20:08:18 -07:00
2018-10-17 21:40:14 +03:00
2022-01-09 17:34:35 +01:00
2022-01-09 17:34:35 +01:00
2010-08-12 20:15:27 -07:00
2022-01-09 17:34:35 +01:00
2010-10-03 21:02:08 +04:00
2025-09-29 16:34:41 -07:00

NASM, the Netwide Assembler

master

Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.

Visit our nasm.us website for more details.

With best regards, the NASM crew.

Description
A cross-platform x86 assembler with an Intel-like syntax.
https://www.nasm.us/
Readme BSD-2-Clause 14 MiB
Languages
Assembly 57%
C 36.9%
Perl 3.1%
Makefile 0.8%
M4 0.7%
Other 1.5%