Struct rs6502::Disassembler [] [src]

pub struct Disassembler { /* fields omitted */ }

Methods

impl Disassembler
[src]

A 6502 instruction disassembler

Creates a new, default instance of the Disassembler

Example

use rs6502::Disassembler;

let dasm = Disassembler::new();

let code: Vec<u8> = vec![0xA9, 0x20, 0x8D, 0x00, 0x44];
let asm = dasm.disassemble(&code);

assert_eq!(Disassembler::clean_asm("

    0000 LDA #$20
    0002 STA $4400

"), Disassembler::clean_asm(asm));

Creates an instance of the Disassembler where no byte offsets are generated in the Assembly output

Example

use rs6502::Disassembler;

let dasm = Disassembler::with_code_only();

let code: Vec<u8> = vec![0xA9, 0x20, 0x8D, 0x00, 0x44];
let asm = dasm.disassemble(&code);

assert_eq!(Disassembler::clean_asm("

    LDA #$20
    STA $4400

"), Disassembler::clean_asm(asm));

Creates an instance of the Disassembler with all available information generated into the output

Example

use rs6502::Disassembler;

let dasm = Disassembler::with_verbose_output();

let code: Vec<u8> = vec![0xA9, 0x20, 0x8D, 0x00, 0x44];
let asm = dasm.disassemble(&code);

assert_eq!(Disassembler::clean_asm("

    0000 A9 20    LDA #$20
    0002 8D 00 44 STA $4400

"), Disassembler::clean_asm(asm));

Accepts a slice of 6502 bytecodes and translates them into an assembly String representation

Example

use rs6502::Disassembler;

let dasm = Disassembler::new();

let code: Vec<u8> = vec![0xA9, 0x20, 0x8D, 0x00, 0x44];
let asm = dasm.disassemble(&code);

assert_eq!(Disassembler::clean_asm("

    0000 LDA #$20
    0002 STA $4400

"), Disassembler::clean_asm(asm));

Returns a Vector of Strings where each entry is a non-empty line of assembly instructions, with all leading and trailing whitespace removed.

Example

use rs6502::Disassembler;

assert_eq!(Disassembler::clean_asm("

    0000 LDA #$20
    0002 STA $4400

"), &["0000 LDA #$20", "0002 STA $4400"]);