| Crates.io | MIPS_disassembly |
| lib.rs | MIPS_disassembly |
| version | 0.1.8 |
| created_at | 2024-08-28 13:51:18.38069+00 |
| updated_at | 2025-08-21 09:21:05.02916+00 |
| description | Takes MIPS machine code and return MIPS assembly. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1354679 |
| size | 27,410 |
This crate dissembles u32 into mips assembly
Simple example
use MIPS_disassembly::get_disassembly;
let instr: u32 = 0x24a50001;
let instr_asm: String = get_disassembly(instr);
assert_eq!(instr_asm, "ADDIU $a1, $a1, 1".to_string())
Example using the advance version
use MIPS_disassembly::get_disassembly_adv
let mut sym_tab: HashMap<u32, String> = HashMap::new();
sym_tab.insert(0x00000108, "decode_if".into());
let instr: u32 = 0x11a0001a;
let instr_adrs: u32 = 0x9c;
assert_eq!(
"BEQ $t5, $zero, 26 <decode_if>",
get_disassembly_adv(
instr,
instr_adrs,
&sym_tab,
&MipsDisassemblyOptions::new(true, true)
)
);
Example of the pseudo instruction option
use MIPS_disassembly::get_disassembly_adv;
use MIPS_disassembly::MipsDisassemblyOptions;
use std::collections::HashMap;
let instr: u32 = 0x0;
assert_eq!(
"NOP",
get_disassembly_adv(
instr,
0x0,
&HashMap::new(),
&MipsDisassemblyOptions::new(true, true)
)
);
assert_eq!(
"SLL $zero, $zero, $zero",
get_disassembly_adv(
instr,
0x0,
&HashMap::new(),
&MipsDisassemblyOptions::new(true, false)
)
);