/// <summary> /// And the working register and file register. /// </summary> /// <param name="Destination">Set to 1 to store the results in the working register or 0 to /// store the result in the file register.</param> /// <param name="FlagAddress">Address of File register. The address has to be in the range of /// 0 ... 127 </param> /// <returns>Machine code value of instruction</returns> public override UInt16 AndWF(TRegisters Destination, Byte FlagAddress) { UInt16 IntelFormat = 0x00; if (IsAddressValid(FlagAddress) == true) { IntelFormat = (UInt16)Destination; IntelFormat <<= 7; IntelFormat |= FlagAddress; IntelFormat <<= 8; IntelFormat |= ANDWF >> 8; } return IntelFormat; }
/// <summary> /// Increment the file register if != 0 /// </summary> /// <param name="Destination">Set to 1 to store the results in the working register or 0 to /// store the result in the file register.</param> /// <param name="FlagAddress">Address of File register. The address has to be in the range of /// 0 ... 127</param> /// <returns>Machine code value of instruction</returns> public abstract UInt16 IncFSZ(TRegisters Destination, Byte FlagAddress);
/// <summary> /// And the working register and file register. /// </summary> /// <param name="Destination">Set to 1 to store the results in the working register or 0 to /// store the result in the file register.</param> /// <param name="FlagAddress">Address of File register. The address has to be in the range of /// 0 ... 127 </param> /// <returns>Machine code value of instruction</returns> public abstract UInt16 AndWF(TRegisters Destination, Byte FlagAddress);