Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <summary>
- /// Disassembles an instruction.
- /// </summary>
- /// <param name="opcode">The opcode of the instruction.</param>
- /// <returns>The disassembled instruction.</returns>
- private string DisassembleInstruction(byte opcode)
- {
- //Oh dear. Here we venture off into the wonderful world of too many opcodes!
- //Sure, a table would've been a great idea, but who said we're efficient?
- switch (opcode)
- {
- case 0x00: return "nop";
- case 0x06: return "ld b," + Hex(gb.ReadByte());
- case 0x0E: return "ld c," + Hex(gb.ReadByte());
- case 0x16: return "ld d," + Hex(gb.ReadByte());
- case 0x1E: return "ld e," + Hex(gb.ReadByte());
- case 0x26: return "ld h," + Hex(gb.ReadByte());
- case 0x2E: return "ld l," + Hex(gb.ReadByte());
- case 0x36: return "ld (hl)," + Hex(gb.ReadByte());
- case 0x40: return "ld b,b";
- case 0x41: return "ld b,c";
- case 0x42: return "ld b,d";
- case 0x43: return "ld b,e";
- case 0x44: return "ld b,h";
- case 0x45: return "ld b,l";
- case 0x46: return "ld b,(hl)";
- case 0x48: return "ld c,b";
- case 0x49: return "ld c,c";
- case 0x4A: return "ld c,d";
- case 0x4B: return "ld c,e";
- case 0x4C: return "ld c,h";
- case 0x4D: return "ld c,l";
- case 0x4E: return "ld c,(hl)";
- case 0x50: return "ld d,b";
- case 0x51: return "ld d,c";
- case 0x52: return "ld d,d";
- case 0x53: return "ld d,e";
- case 0x54: return "ld d,h";
- case 0x55: return "ld d,l";
- case 0x56: return "ld d,(hl)";
- case 0x58: return "ld e,b";
- case 0x59: return "ld e,c";
- case 0x5A: return "ld e,d";
- case 0x5B: return "ld e,e";
- case 0x5C: return "ld e,h";
- case 0x5D: return "ld e,l";
- case 0x5E: return "ld e,(hl)";
- case 0x60: return "ld h,b";
- case 0x61: return "ld h,c";
- case 0x62: return "ld h,d";
- case 0x63: return "ld h,e";
- case 0x64: return "ld h,h";
- case 0x65: return "ld h,l";
- case 0x66: return "ld h,(hl)";
- case 0x68: return "ld l,b";
- case 0x69: return "ld l,c";
- case 0x6A: return "ld l,d";
- case 0x6B: return "ld l,e";
- case 0x6C: return "ld l,h";
- case 0x6D: return "ld l,l";
- case 0x6E: return "ld l,(hl)";
- case 0x70: return "ld (hl),b";
- case 0x71: return "ld (hl),c";
- case 0x72: return "ld (hl),d";
- case 0x73: return "ld (hl),e";
- case 0x74: return "ld (hl),h";
- case 0x75: return "ld (hl),l";
- case 0x78: return "ld a,b";
- case 0x79: return "ld a,c";
- case 0x7A: return "ld a,d";
- case 0x7B: return "ld a,e";
- case 0x7C: return "ld a,h";
- case 0x7D: return "ld a,l";
- case 0x7E: return "ld a,(hl)";
- case 0x7F: return "ld a,a";
- }
- return "unknownopcode " + Hex(opcode);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement