From 01a8281bc90770d2559e9692342e39b20cb5c2a6 Mon Sep 17 00:00:00 2001 From: mappu Date: Mon, 11 Dec 2023 19:33:22 +1300 Subject: [PATCH] doc: README.md --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..80d15bc --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# pxasme + +A single-pass x86_64 assembler that emits relocatable ELF64 objects. + +## Usage + +```bash +pxasme -Src myapp.asm -Dest myapp.o +ld -s -o myapp myapp.o +./myapp +``` + +## Status + +- [X] Lexer + - [X] "Variables" in data/rodata (u8, u16, u32, u64, sz) + - [X] C-style addressing (bare or `&`) + - [ ] Unified public/private, import/export syntax + - [X] State machine parser for opcode arguments +- [X] Parser + - [X] mov, ret, syscall, sections, variables + - [X] strlen($var) compile-time function + - [ ] more isa ops +- [X] Code generation + - [X] Generate ELF64 binaries + - [X] Relocations + - [X] `R_X86_64_32S` (n.b. not PIC) + - [X] `R_X86_64_64` + - [ ] Freestanding mode