virtualSoC  0.6.2
baskett
Vcsos.mm.vmnor Class Reference
+ Inheritance diagram for Vcsos.mm.vmnor:

Public Member Functions

bool ParseAndRun (ParserFactory factory)
 

Properties

string Name [get]
 
string Info [get]
 

Detailed Description

Member Function Documentation

◆ ParseAndRun()

bool Vcsos.mm.vmnor.ParseAndRun ( ParserFactory  factory)

Implements Vcsos.mm.vmoperator.

36  {
37  InstructionParam2 param1 = factory.getParam(4); // 101 4 105
38  int param1V = VM.Instance.Ram.Read32 (VM.Instance.CurrentCore.Register.ip + 5); //106
39 
40  InstructionParam2 param2 = factory.getParam(9); // 110 4 114
41  int param2V = VM.Instance.Ram.Read32 (VM.Instance.CurrentCore.Register.ip + 10); //115
42 
43  InstructionParam2 param3 = factory.getParam(14); // 119 4 123
44  int param3V = VM.Instance.Ram.Read32 (VM.Instance.CurrentCore.Register.ip + 15);
45 
46 
47  if (param2 == InstructionParam2.Value)
48  VM.Instance.CurrentCore.Register.Stack.Push32 (param2V);
49  else if (param2 == InstructionParam2.Register) {
50  VM.Instance.CurrentCore.Register.Stack.Push32 (VM.Instance.CurrentCore.Register.Get (factory.m_pRegisters [param2V].Name));
51  }
52  else if (param2 == InstructionParam2.Pointer)
53  VM.Instance.CurrentCore.Register.Stack.Push32 (MemoryMap.Read32 (param2V));
55  if (param3 == InstructionParam2.Value)
56  VM.Instance.CurrentCore.Register.Stack.Push32 (param3V);
57  else if (param3 == InstructionParam2.Register) {
58  VM.Instance.CurrentCore.Register.Stack.Push32 (VM.Instance.CurrentCore.Register.Get (factory.m_pRegisters [param3V].Name));
59  }
60  else if (param3 == InstructionParam2.Pointer)
61  VM.Instance.CurrentCore.Register.Stack.Push32 (MemoryMap.Read32 (param3V));
63  if (param1 == InstructionParam2.Pointer)
64  MemoryMap.Write (VM.Instance.CurrentCore.Nor( VM.Instance.CurrentCore.Register.Stack.Pop32 (), VM.Instance.CurrentCore.Register.Stack.Pop32 () ), (uint)param1V);
65  else if (param1 == InstructionParam2.Register)
66  VM.Instance.CurrentCore.Register.Set (factory.m_pRegisters [param1V].Name, VM.Instance.CurrentCore.Nor( VM.Instance.CurrentCore.Register.Stack.Pop32 (), VM.Instance.CurrentCore.Register.Stack.Pop32 () ));
67 
68  return true;
69  }
InstructionParam2
Typ arten eines Parameter
Definition: Instruction.cs:30

Property Documentation

◆ Info

string Vcsos.mm.vmnor.Info
get

◆ Name

string Vcsos.mm.vmnor.Name
get

The documentation for this class was generated from the following file: