private void ANDI_Disasm(DisassemblyInfo info) { int size = ((op >> 6) & 0x03); int dstMode = ((op >> 3) & 0x07); int dstReg = (op & 0x07); int pc = info.PC + 2; switch (size) { case 0: // Byte { info.Mnemonic = "andi.b"; sbyte imm = (sbyte)ReadWord(pc); pc += 2; info.Args = $"#${imm:X}, "; info.Args += DisassembleValue(dstMode, dstReg, 1, ref pc); break; } case 1: // Word { info.Mnemonic = "andi.w"; short imm = ReadWord(pc); pc += 2; info.Args = $"#${imm:X}, "; info.Args += DisassembleValue(dstMode, dstReg, 2, ref pc); break; } case 2: // Long { info.Mnemonic = "andi.l"; int imm = ReadLong(pc); pc += 4; info.Args = $"#${imm:X}, "; info.Args += DisassembleValue(dstMode, dstReg, 4, ref pc); break; } } info.Length = pc - info.PC; }
private void ORI_Disasm(DisassemblyInfo info) { int pc = info.PC + 2; int size = (op >> 6) & 3; int mode = (op >> 3) & 7; int reg = (op >> 0) & 7; switch (size) { case 0: // byte { info.Mnemonic = "ori.b"; sbyte immed = (sbyte)ReadWord(pc); pc += 2; info.Args = $"#${immed:X}, {DisassembleValue(mode, reg, 1, ref pc)}"; break; } case 1: // word { info.Mnemonic = "ori.w"; short immed = ReadWord(pc); pc += 2; info.Args = $"#${immed:X}, {DisassembleValue(mode, reg, 2, ref pc)}"; break; } case 2: // long { info.Mnemonic = "ori.l"; int immed = ReadLong(pc); pc += 4; info.Args = $"#${immed:X}, {DisassembleValue(mode, reg, 4, ref pc)}"; break; } } info.Length = pc - info.PC; }