void MOV(eRegister8 x, eRegister8 y) { switch (y) { case eRegister8.AH: MOV(x, AH); break; case eRegister8.AL: MOV(x, AL); break; case eRegister8.BH: MOV(x, BH); break; case eRegister8.BL: MOV(x, BL); break; case eRegister8.CH: MOV(x, CH); break; case eRegister8.CL: MOV(x, CL); break; case eRegister8.DH: MOV(x, DH); break; case eRegister8.DL: MOV(x, DL); break; default: throw new InvalidOperationException(); } }
void MOV(eRegister8 a, MemoryAddress address) { MOV(a, this.machine.RAM.GetByte(address)); }
void MOV(eRegister8 a, byte b) { switch (a) { case eRegister8.AH: AH = b; break; case eRegister8.AL: AL = b; break; case eRegister8.BH: BH = b; break; case eRegister8.BL: BL = b; break; case eRegister8.CH: CH = b; break; case eRegister8.CL: CL = b; break; case eRegister8.DH: DH = b; break; case eRegister8.DL: DL = b; break; default: throw new InvalidOperationException(); } }