CodeX Assembler ((C) 2002 Marco Kaufmann) is a Freeware assembler for x86 platforms that supports in the current version 1.0 and version 2.34 of the Opcode Map the instruction sets of all Intel CPUs (including the numerical Co - processors) up to the Pentium IV as well as the AMD 3D Now! instruction set. The assembler includes an integrated linker and generates the following target formats:
16 - and 32 Bit Flat Model Binaries
16 - and 32 Bit applications for DOS
Later versions of CodeX Assembler also will support 32 Bit Windows applications (Console / GUI) and 32 Bit Windows DLLs as well as 16 - and 32 Bit CodeX units as target format.
Why use CodeX Assembler?
CodeX Assembler provides some advantages facing other x86 - assemblers:
Supported CPU instruction sets are not implemented by CodeX Assembler, but by an external Opcode Map that is a text file. This can be extended at any time in order to integrate support for new instruction sets without modifying the assembler itself, since CodeX Assembler can compile it's own Opcode Maps (that means, even the user himself may extend the the amount of supported instruction sets).
Value expressions my be combined complexly with each other by operators and brackets and in use with constant identifiers in each part of the source code, even when used as operands for CPU instructions (example: mov ax,(3*(col_red+7) &| 0F700h)). There are provided numerous value operators, such as .log, .mod, .pow and so on.
CodeX Assembler distinguishs between integer and floating point values (that are stored in another format), so that also FPU variables can get initialized. Thereby, integer value expressions always are computed to 128 bits precis, and floating point value expressions to 80 bits.
CodeX Assembler allows the user defining his own data types (Records, Arrays and both combined) and their use with variables, whereby all fields of a data type or a variable can be referenced directly.
, to name just a few. For further details see CodeX Assembler documentation.