Ejemplo n.º 1
0
 private void WriteValue(BigInteger value, OpcodeParameter writeParameter)
 {
     if (writeParameter.Mode == AddressingMode.Position)
     {
         EnsureMemoryCapacity((int)writeParameter.Value);
         Program[(int)writeParameter.Value] = value;
     }
     else if (writeParameter.Mode == AddressingMode.Relative)
     {
         EnsureMemoryCapacity((int)writeParameter.Value + RelativeBase);
         Program[(int)writeParameter.Value + RelativeBase] = value;
     }
 }
Ejemplo n.º 2
0
        private int ReadValue(OpcodeParameter readParameter)
        {
            if (readParameter.Mode == AddressingMode.Immediate)
            {
                return(readParameter.Value);
            }
            else if (readParameter.Mode == AddressingMode.Position)
            {
                return(Program[readParameter.Value]);
            }

            throw new NotSupportedException();
        }
Ejemplo n.º 3
0
        private BigInteger ReadValue(OpcodeParameter readParameter)
        {
            if (readParameter.Mode == AddressingMode.Immediate)
            {
                return(readParameter.Value);
            }
            else if (readParameter.Mode == AddressingMode.Position)
            {
                EnsureMemoryCapacity((int)readParameter.Value);
                return(Program[(int)readParameter.Value]);
            }
            else if (readParameter.Mode == AddressingMode.Relative)
            {
                EnsureMemoryCapacity((int)readParameter.Value + RelativeBase);
                return(Program[(int)readParameter.Value + RelativeBase]);
            }

            throw new NotSupportedException();
        }