pub fn disasm(
code: &[u8],
address: u64
) -> impl Iterator<Item = Result<Instruction, DecodeError>> + '_
Expand description
Disassemble byte slice
Arguments
code
- u8 slice to zero or more instructionsaddress
- Location of code in memory
Examples
use bad64::{disasm, Op};
let mut decoded_iter = disasm(b"\x1f\x20\x03\xd5\x1f\x20\x03\xd5", 0x1000);
let decoded1 = decoded_iter.next().unwrap().unwrap();
assert_eq!(decoded1.address(), 0x1000);
assert_eq!(decoded1.operands().len(), 0);
assert_eq!(decoded1.op(), Op::NOP);
assert_eq!(decoded1.op().mnem(), "nop");
let decoded2 = decoded_iter.next().unwrap().unwrap();
assert_eq!(decoded2.address(), 0x1004);
assert_eq!(decoded2.operands().len(), 0);
assert_eq!(decoded2.op(), Op::NOP);
assert_eq!(decoded2.op().mnem(), "nop");
assert_eq!(decoded_iter.next(), None);