/// <summary>
 /// Creates a new instance of ReturnOperation with an argument. Use this for RETLW.
 /// </summary>
 /// <param name="_op"></param>
 /// <param name="_arg"></param>
 /// <param name="_registerFileMap"></param>
 /// <param name="_address"></param>
 public ReturnOperation(Register.ProgramCounter _programCounter, Data.OperationStack _operationStack, ReturnOperator _op, byte _arg, Register.RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.programCounter = _programCounter;
     this.operationStack = _operationStack;
     op = _op;
     arg = _arg;
 }
예제 #2
0
 public Parser(PIC _pic)
 {
     this.pic = _pic;
     this.registerFileMap = pic.getRegisterFileMap();
     this.programMemory = pic.getProgramMemory();
     this.operationStack = pic.getOperationStack();
     this.programCounter = pic.getProgramCounter();
 }
 /// <summary>
 /// Creates a new instance of ReturnOperation without an argument. Use this for RETURN, RETFIE.
 /// </summary>
 /// <param name="_op">enum RETURN / RETFIE</param>
 /// <param name="_registerFileMap"></param>
 /// <param name="_address"></param>
 public ReturnOperation(Register.ProgramCounter _programCounter, Data.OperationStack _operationStack, ReturnOperator _op, Register.RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.programCounter = _programCounter;
     this.operationStack = _operationStack;
     op = _op;
     arg = 0;
     if (_op == ReturnOperator.RETLW)
     {
         new Exception("Cannot create ReturnOperation with Operator RETLW without passing an argument. (Hint: use different constructor).");
     }
 }