diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad78105 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# The Engine Assembler + +Provides an assembler-as-macro that lets you assemble The Engine bytecode +in your program. For example, to create an infinite loop, run: + +```rust + let mcode = engine25519_as::assemble_engine25519!( + start: + brz start, #0 + ); +``` + +## Disassembly + +You can use a basic disassembler provided by this crate. To disassemble a single opcode, run: + +```rust + let opcode = engine25519_as::disasm::Opcode::from_i32(0x14_7985); + println!("Opcode: {}", opcode); +``` + +## Debugging the Macro + +To debug the macro, use the `nightly` toolchain and enable the `macro-debug` feature. + +An easy way to do this is: + +```sh +$ cargo +nightly test --features macro-debug +... +```