Beispiel #1
0
        internal ushort Pop()
        {
            var value = ReadU16(InstructionHelper.SegmentToAddress(GetRegister(Register.SS), GetRegister(Register.SP)));

            registers[(int)Register.SP] += 2;
            return(value);
        }
Beispiel #2
0
        ushort IInstructionFetcher.FetchU16()
        {
            var value = _cpu.ReadU16(InstructionHelper.SegmentToAddress(
                                         _cpu.GetRegister(Register.CS),
                                         (ushort)(_cpu.GetRegister(Register.IP) + _fetched)));

            _fetched += 2;
            return(value);
        }
Beispiel #3
0
 internal void Push(ushort value)
 {
     registers[(int)Register.SP] -= 2;
     WriteU16(InstructionHelper.SegmentToAddress(GetRegister(Register.SS), GetRegister(Register.SP)), value);
 }