| 0.1.0 | Parse and validate MOV programs, evaluate expressions, and print encoded bytes. |
| 0.2.0 | Encode ret; as C3, allowing a small function to return to its caller. |
| 0.3.0 | Save raw bytes in program.bin; test example files in separate output directories. |
| 0.4.0 | Generate generated.h with a C byte array and length; inspect the data with a C program. |
| 0.5.0 | Add a Linux x86-64 runner example that loads the generated bytes into executable memory and calls them. |
| 0.6.0 | Add Windows x86-64 execution to the runner using the same generated bytes. |
| 0.7.0 | Parse label definitions, including consecutive labels, without emitting extra bytes. |
| 0.8.0 | Assign instruction and label offsets before encoding, reject duplicate labels, and provide label-offset lookup. |
| 0.9.0 | Encode near jumps with signed relative displacements and resolve forward label references after layout. |
| 0.10.0 | Add short jumps with signed 8-bit displacements and require explicit jmp near or jmp short syntax. |
| 0.11.0 | Add a load-time relocation helper, emit patch metadata in generated headers, and apply patches in both runners before execution. |
| 0.12.0 | Add jmp abs through a full-width address slot, generate relocation entries, and verify execution of a relocated jump in WSL2. |
| 0.14.0 (0.13.0 skipped) | Add INC and DEC on EAX, JZ and JNZ for conditional branches and loops, and a decoder with an exact-listing test. |
| 0.15.0 | Add ADD/SUB EAX immediate expressions, five-byte encoding, and decoder support. |
| 0.16.0 | Add OR EAX immediate expressions and PUSH/POP RAX, with layout, operand validation, and decoding support. |
| 0.17.0 | Add ADC EAX immediate expressions, encoding and decoding, with runtime checks for carry clear and carry set. |
| 0.18.0 | Add INT with an unsigned 8-bit vector, expression parsing, range validation, encoding, and decoding. |
| 0.18.1 | Fix decoding for INC EAX and JZ, and add an end-to-end regression test for their byte output and decoded listing. |
| 0.19.0 | Add CMP and AND EAX immediate expressions, five-byte encoding, flag-setting semantics, decoder support, and JB/JL conditional branches. |
| 0.19.1 | Replace the fixed 4096-byte source buffer with dynamically growing storage. |
| 0.20.0 | Add XOR EAX immediate expressions, five-byte encoding, and decoder support. |
| 0.22.0 | Make CPU mode explicit with --bits 16, --bits 32, or --bits 64; reject unsupported 16-bit and 32-bit modes before encoding. |
| 0.23.0 | Add DB/byte, DW/word, DD/dword, and DQ/qword data directives, expression lists, range checks, and little-endian emission. |
| 0.24.0 | Add TIMES/FILL repetition for data directives. |
| 0.24.1 | Restore the default one-source-file CLI invocation as 64-bit mode. |
| 0.25.0 | Add $ and $$ location-aware expressions, resolving dynamic TIMES/FILL counts during layout. |
| 0.25.1 | Fix the boot-padding regression test to measure binary output through HEX, keeping CI behavior consistent across platforms. |
| 0.26.0 | Add initial 16-bit MOV/ADD/SUB encoding for AX/CX/DX, operand-width-aware layout, and target-aware decoding. |
| 0.27.0 | Add 16-bit indirect mov from [bx] into AX/CX/DX. |
| 0.28.0 | Add a 512-byte 16-bit boot-sector fixture using location-aware padding, binary literals, and the 55 AA boot signature. |
| 0.29.0 | Add 16-bit segment-register push/pop for CS, ES, SS, DS, FS, and GS. |
| 0.30.0 | Add 16-bit SBB immediate forms for AX, CX, and DX. |
| 0.31.0 | Add operand-free HALT and PAUSE forms. |
| 0.32.0 | Make signed constant-expression folding overflow-safe for addition, subtraction, and multiplication. |
| 0.33.0 | Resolve label expressions in data directives after layout; add Windows x64 COFF object output; name raw binaries and headers after the input file. |
| 0.34.0 | Documentation only: launch this journal, trim the README’s version history into a pointer to it, and publish the book to GitHub Pages via CI. |