17.5 Clearing Interrupt Flags
The individual status flags, (IOCxF register bits), will be cleared by resetting them to zero. If another edge is detected during this clearing operation, the associated status flag will be set at the end of the sequence, regardless of the value actually being written.
In order to ensure that no detected edge is lost while clearing flags, only
AND
operations masking out known changed bits should be performed. The
following sequence is an example of clearing an IOC interrupt flag using this method.
Clearing Interrupt Flags (PORTA Example)
MOVLW 0xff
XORWF IOCAF, W
ANDWF IOCAF, F