#反汇编器 #汇编 #二进制文件 #6502 #反汇编

disasm6502

6502反汇编器,包含一个工作示例

4个版本

使用旧的Rust 2015

0.2.2 2021年4月11日
0.2.1 2017年1月2日
0.2.0 2016年8月31日
0.1.0 2016年8月30日

#634 in 编码


2 crate中使用

MIT/Apache

49KB
593

disasm6502

Crates.io Documentation Build Status Build status Coverage Status

一个提供反汇编6502二进制代码功能的crate。支持解码禁用指令,提供周期计数信息,指令访问的寄存器和受影响的标志位。可接受的数据输入可以是字节数组、字节数组或二进制文件。

文档

使用方法

# Cargo.toml
[dependencies]
disasm6502 = "0.2"

示例

extern crate disasm6502;

fn main()
{
    let bytes = vec![0x05, 0x0B, 0x6C, 0x01, 0x02,
                     0x0A, 0xA2, 0xFF, 0x20, 0x02,
                     0xFD, 0x78, 0xD0, 0xFC, 0x1D,
                     0x05, 0x1E, 0x04, 0x15, 0x02,
                     0x96, 0xAB, 0x58, 0x61, 0x01,
                     0x91, 0xFB];

    // disassemble...
    let instructions = disasm6502::from_array(&bytes).unwrap();

    // ...and print!
    for i in instructions.iter() {
        println!("{}", i);
    }
}

构建说明

cargo build
cargo run --example disasm6502

这将运行示例,生成以下输出

$0000: 05 0B    ORA $0B           (3)  Reads:[A]    Writes:[A]    Affects:[NZ]
$0002: 6C 01 02 JMP ($0201)       (5)                             
$0005: 0A       ASL A             (2)  Reads:[A]    Writes:[A]    Affects:[NZC]
$0006: A2 FF    LDX #$FF          (2)               Writes:[X]    Affects:[NZ]
$0008: 20 02 FD JSR $FD02         (6)                             
$000B: 78       SEI               (2)                             Affects:[I]
$000C: D0 FC    BNE $000A         (*4)                            
$000E: 1D 05 1E ORA $1E05,X       (*5) Reads:[AX]   Writes:[A]    Affects:[NZ]
$0011: 04 15    NOP $15       ??? (3)                             
$0013: 02       HLT           ??? (1)                             
$0014: 96 AB    STX $AB,Y         (4)  Reads:[XY]                 
$0016: 58       CLI               (2)                             Affects:[I]
$0017: 61 01    ADC ($01,X)       (6)  Reads:[AX]   Writes:[A]    Affects:[NVZC]
$0019: 91 FB    STA ($FB),Y       (6)  Reads:[AY]                 
$001B: .END

许可证

许可证为以下之一

无运行时依赖