Skip to content

Jonathan1324/linked-assembly

Repository files navigation

linked-assembly

A modular assembler (and linker planned).
Currently only supports x86, 32-bit mode, and ELF .o object files/Binary .bin files.

Documentation

Features

  • Supports a basic set of x86 instructions (see full list)
  • Generates valid object files.
  • Simple, readable assembly syntax
  • Command-line flags for extensibility:
    • --arch <arch> — target architecture (x86, arm, riscv)
    • --format <format> — output file format (bin, elf, macho, coff)
    • --endian <endianness> — target endianness (little, big)
    • -m64, -m32, -m16 — selects the bit mode

Note: Currently, only --arch x86, --format elf/--format bin, --endian little, and -m32 are fully supported.

Building

Build the assembler using make:

make

This will produce the binary in build/assembly/assembly.

Usage

Build your assembly file into an object file with:

build/assembly/assembly input.asm -o output.o --arch x86 --format elf --endian little -m32

(see full guide)

Contributing

Contributions are very welcome!
Check out CONTRIBUTING.md for how to get started.

Examples

See examples in the examples/README.md.

License

This project is licensed under the BSD 3-Clause License.

About

Simple modular assembler for x86 (32-bit ELF).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages