Module: PSX::Disasm

Defined in:
lib/psx/disasm.rb

Constant Summary collapse

REG_NAMES =
%w[
  zero at v0 v1 a0 a1 a2 a3
  t0 t1 t2 t3 t4 t5 t6 t7
  s0 s1 s2 s3 s4 s5 s6 s7
  t8 t9 k0 k1 gp sp fp ra
].freeze
COP0_NAMES =
{
  3 => "BPC", 5 => "BDA", 6 => "JUMPDEST", 7 => "DCIC",
  8 => "BadVAddr", 9 => "BDAM", 11 => "BPCM", 12 => "SR",
  13 => "CAUSE", 14 => "EPC", 15 => "PRId"
}.freeze

Class Method Summary collapse

Class Method Details

.disassemble(pc, instruction) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/psx/disasm.rb', line 19

def disassemble(pc, instruction)
  return format("%08X: %08X  nop", pc, instruction) if instruction == 0

  opcode = (instruction >> 26) & 0x3F
  text = decode(pc, instruction, opcode)
  format("%08X: %08X  %s", pc, instruction, text)
end