pub struct Disassembler { /* private fields */ }
Implementations§
Source§impl Disassembler
A 6502 instruction disassembler
impl Disassembler
A 6502 instruction disassembler
Sourcepub fn new() -> Disassembler
pub fn new() -> 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));
Sourcepub fn with_code_only() -> Disassembler
pub fn with_code_only() -> Disassembler
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));
Sourcepub fn with_verbose_output() -> Disassembler
pub fn with_verbose_output() -> Disassembler
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));
pub fn with_offset(offset: u16) -> Disassembler
pub fn disassemble(&self, raw: &[u8]) -> String
Sourcepub fn disassemble_with_addresses(&self, raw: &[u8]) -> Vec<(String, u16)>
pub fn disassemble_with_addresses(&self, raw: &[u8]) -> Vec<(String, u16)>
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));
Sourcepub fn clean_asm<I>(input: I) -> Vec<String>
pub fn clean_asm<I>(input: I) -> Vec<String>
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"]);
Auto Trait Implementations§
impl Freeze for Disassembler
impl RefUnwindSafe for Disassembler
impl Send for Disassembler
impl Sync for Disassembler
impl Unpin for Disassembler
impl UnwindSafe for Disassembler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more