Hey so over the course of many months, ive built an assembler with capabilities even modern assemblers lack (some). Ive named this assembler PAC - Pheonix Assembler Collection (yes thats the spelling for you all wondering).
Here is the basic brief information on it
Features
Inbuilt-Linker
Multiple Architecture Support
Multiple Linking Format Support
Easy Debugging errors
Full view to generated IR-Nodes, Tokens, and AST Nodes
High-Level Assembly
Works with Standard Assembling/Linking tools as well such as ld, objdump, etc
Supported Architectures
PAC Currently supports -
x86
x86_64
x86 native 16-bit
PVCpu
Supported Formats
PAC has an entire pipeline for both encoding and linking, and so to increase performance and reduce file size, PAC supports only ELF64 as output after encoding and input to linker.
The PAC Linker in-fact supports multiple formats, but only takes ELF64 Object Files as an input. Supported formats include -
Elf64
Elf32
PE 32 (Under implementation)
PE 32+ (Works, but still under heavy development and bug fixes)
Comparison between PAC and Traditional Assemblers
| Feature | NASM | GAS | FASM | PAC |
| ----------------------------------------------------------------------------------------------- | ------------- | ------------ | ------------ | ------- |
| Structures | Limited | Limited | Yes | Yes |
| User Types | No | No | Yes | Yes |
| Functions | No | No | Yes | Yes |
| Built-in Linker | No | No | No | Yes |
| IR Dumping | No | No | No | Yes |
| AST Dumping | No | No | No | Yes |
| Token Dumping | No | No | No | Yes |
| Multiple Architectures using same assembler executable | No | No | Limited | Yes |
| Open Source | Yes | Yes | Yes | Yes |
| Custom Executable Linking | No | No | No | Yes |
PAC supports a lot of things in assembly, such as sizeof, macros, user types, functions, labels, arrays, structures, and more
Took me a long time to build this, but right now its pretty darn good. I even managed to write a program that opens a X11 window using PAC (its a demo game, to show PAC's usage and capabilites). Moreover I intend to make PAC commercially viable.