Jotrorox/jasm
A simple Assembler written from scratch, for educational and recreational purposes
A modern, user-friendly x86_64 assembler for Linux.
git clone https://github.com/jotrorox/jasm.git
cd jasm
cc -o nob nob.c
./nob --type Release
The build system supports different build types:
Debug
: Includes debugging symbols and ASAN (Address Sanitizer)Release
: Optimized build with maximum performanceVerbose
: Includes additional warnings and debug informationAdditional build options:
--verbose
: Show detailed build information--output <dir>
: Specify output directory (default: build)--clean
: Clean the build directory--verbose
: Show verbose output--quiet
: Suppress output--cc <path>
: Specify the C compiler (default: cc)--help
: Show help messagecc
in your path)Basic usage:
jasm input.jasm [output]
Options:
-h, --help
: Display help message-v, --verbose
: Enable verbose output-V, --version
: Display version information-f, --format <format>
: Specify output format (elf, bin)# Example: Print "Hello, world!" to stdout
data msg "Hello, World!\n"
# sys_write(stdout, msg, 14)
mov rax, 1 # sys_write
mov rdi, 1 # stdout
mov rsi, msg # message
mov rdx, 14 # length
call
# sys_exit(0)
mov rax, 60 # sys_exit
mov rdi, 0 # status
call
For detailed documentation, visit our documentation website.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Johannes (Jotrorox) Müller