/// <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; }
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)."); } }