ac78e9705cb4ac0ad7f4e4c30c4ad44fd92c4c5e
Previously only a single byte was read and saved, but the J-byte means, that the read signed-byte must be added to the address of the next instruction.
minix-8086-rs
minix-8086-rs is a Rust-based toolchain for analyzing and emulating 16-bit MINIX binaries. It includes:
- 📦 a.out Parser: Parses legacy MINIX executables.
- 🛠 8086 Disassembler: Converts 16-bit instructions into an IR.
- 💻 MINIX Emulator: Interprets and executes 8086 MINIX binaries in a simulated environment.
Usage
To compile and run the tool, use Cargo:
cargo build --release
Or run it directly:
cargo run -- --help
CLI Options:
$ cargo run -- --help
Simple prgram to diasm and interpret Minix binaries
Usage: minix-8086-rs [OPTIONS] <COMMAND>
Commands:
disasm Disassemble the binary into 8086 instructions
interpret Interpret the binary as 8086 Minix
help Print this message or the help of the given subcommand(s)
Options:
-p, --path <PATH> Path of the binary
-h, --help Print help
-V, --version Print version
Examples
Disassemble a binary:
cargo run -- disasm -p ./a.out
Interpret a binary:
cargo run -- interpret -p ./a.out
Status
This project is under active development and primarily used by me to explore some Intel disassembly and learn some more Rust. Expect bugs and some missing features.
Documentation
For the implementation of all instructions I used the Intel "8086 16-BIT HMOS MICROPROCESSOR" Spec, as well as this overview of all Opcode variants used in conjunction with this decoding matrix.
Description
Languages
Rust
99.5%
Python
0.5%