Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.72 KB | None | 0 0
  1.     /// <summary>
  2.         /// Disassembles an instruction.
  3.         /// </summary>
  4.         /// <param name="opcode">The opcode of the instruction.</param>
  5.         /// <returns>The disassembled instruction.</returns>
  6.         private string DisassembleInstruction(byte opcode)
  7.         {
  8.             //Oh dear. Here we venture off into the wonderful world of too many opcodes!
  9.             //Sure, a table would've been a great idea, but who said we're efficient?
  10.             switch (opcode)
  11.             {
  12.                 case 0x00: return "nop";
  13.                 case 0x06: return "ld b," + Hex(gb.ReadByte());
  14.                 case 0x0E: return "ld c," + Hex(gb.ReadByte());
  15.                 case 0x16: return "ld d," + Hex(gb.ReadByte());
  16.                 case 0x1E: return "ld e," + Hex(gb.ReadByte());
  17.                 case 0x26: return "ld h," + Hex(gb.ReadByte());
  18.                 case 0x2E: return "ld l," + Hex(gb.ReadByte());
  19.                 case 0x36: return "ld (hl)," + Hex(gb.ReadByte());
  20.                 case 0x40: return "ld b,b";
  21.                 case 0x41: return "ld b,c";
  22.                 case 0x42: return "ld b,d";
  23.                 case 0x43: return "ld b,e";
  24.                 case 0x44: return "ld b,h";
  25.                 case 0x45: return "ld b,l";
  26.                 case 0x46: return "ld b,(hl)";
  27.                 case 0x48: return "ld c,b";
  28.                 case 0x49: return "ld c,c";
  29.                 case 0x4A: return "ld c,d";
  30.                 case 0x4B: return "ld c,e";
  31.                 case 0x4C: return "ld c,h";
  32.                 case 0x4D: return "ld c,l";
  33.                 case 0x4E: return "ld c,(hl)";
  34.                 case 0x50: return "ld d,b";
  35.                 case 0x51: return "ld d,c";
  36.                 case 0x52: return "ld d,d";
  37.                 case 0x53: return "ld d,e";
  38.                 case 0x54: return "ld d,h";
  39.                 case 0x55: return "ld d,l";
  40.                 case 0x56: return "ld d,(hl)";
  41.                 case 0x58: return "ld e,b";
  42.                 case 0x59: return "ld e,c";
  43.                 case 0x5A: return "ld e,d";
  44.                 case 0x5B: return "ld e,e";
  45.                 case 0x5C: return "ld e,h";
  46.                 case 0x5D: return "ld e,l";
  47.                 case 0x5E: return "ld e,(hl)";
  48.                 case 0x60: return "ld h,b";
  49.                 case 0x61: return "ld h,c";
  50.                 case 0x62: return "ld h,d";
  51.                 case 0x63: return "ld h,e";
  52.                 case 0x64: return "ld h,h";
  53.                 case 0x65: return "ld h,l";
  54.                 case 0x66: return "ld h,(hl)";
  55.                 case 0x68: return "ld l,b";
  56.                 case 0x69: return "ld l,c";
  57.                 case 0x6A: return "ld l,d";
  58.                 case 0x6B: return "ld l,e";
  59.                 case 0x6C: return "ld l,h";
  60.                 case 0x6D: return "ld l,l";
  61.                 case 0x6E: return "ld l,(hl)";
  62.                 case 0x70: return "ld (hl),b";
  63.                 case 0x71: return "ld (hl),c";
  64.                 case 0x72: return "ld (hl),d";
  65.                 case 0x73: return "ld (hl),e";
  66.                 case 0x74: return "ld (hl),h";
  67.                 case 0x75: return "ld (hl),l";
  68.                 case 0x78: return "ld a,b";
  69.                 case 0x79: return "ld a,c";
  70.                 case 0x7A: return "ld a,d";
  71.                 case 0x7B: return "ld a,e";
  72.                 case 0x7C: return "ld a,h";
  73.                 case 0x7D: return "ld a,l";
  74.                 case 0x7E: return "ld a,(hl)";
  75.                 case 0x7F: return "ld a,a";
  76.             }
  77.  
  78.             return "unknownopcode " + Hex(opcode);
  79.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement