Ejemplo n.º 1
0
 void PutRMByte(int ModRM, byte val)
 {
     if (ModRM >= 0xc0)
     {
         I.regs.b[mod_RM.RMb[ModRM]] = val;
     }
     else
     {
         WriteByte(GetEA[ModRM](), val);
     }
 }
Ejemplo n.º 2
0
 void PutImmRMByte(int ModRM)
 {
     if (ModRM >= 0xc0)
     {
         I.regs.b[mod_RM.RMb[ModRM]] = FETCH();
     }
     else
     {
         EA = GetEA[ModRM]();
         WriteByte(EA, FETCH());
     }
 }
Ejemplo n.º 3
0
 void PutRMWord(int ModRM, ushort val)
 {
     if (ModRM >= 0xc0)
     {
         //I.regs.w[mod_RM.RMw[ModRM]] = val;
         I.regs.b[mod_RM.RMw[ModRM] * 2]     = (byte)(val % 0x100);
         I.regs.b[mod_RM.RMw[ModRM] * 2 + 1] = (byte)(val / 0x100);
     }
     else
     {
         WriteWord(GetEA[ModRM](), val);
     }
 }
Ejemplo n.º 4
0
        void PutImmRMWord(int ModRM)
        {
            ushort val;

            if (ModRM >= 0xc0)
            {
                //I.regs.w[mod_RM.RMw[ModRM]] = FETCHWORD();
                ushort w = FETCHWORD();
                I.regs.b[mod_RM.RMw[ModRM] * 2]     = (byte)(w % 0x100);
                I.regs.b[mod_RM.RMw[ModRM] * 2 + 1] = (byte)(w / 0x100);
            }
            else
            {
                EA  = GetEA[ModRM]();
                val = FETCHWORD();
                WriteWord(EA, val);
            }
        }
Ejemplo n.º 5
0
 byte GetRMByte(int ModRM)
 {
     return((ModRM) >= 0xc0 ? I.regs.b[mod_RM.RMb[ModRM]] : ReadByte(GetEA[ModRM]()));
 }
Ejemplo n.º 6
0
 ushort GetRMWord(int ModRM)
 {
     return((ushort)(ModRM >= 0xc0 ? I.regs.b[mod_RM.RMw[ModRM] * 2] + I.regs.b[mod_RM.RMw[ModRM] * 2 + 1] * 0x100 : ReadWord(GetEA[ModRM]())));
 }