A modern, user-friendly x86_64 assembler for Linux.
- Simple, intuitive syntax
- Support for most x86_64 instructions
- ELF and raw binary output formats
- Fast compilation times
- Comprehensive error messages
- Clone the repository:
git clone https://github.com/jotrorox/jasm.git
cd jasm- Build the project:
cc -o nob nob.c
./nob --type ReleaseThe 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 information
Additional 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 message
- Linux x86_64
- A C compiler (
ccin 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