|Can anybody tell me how to do a 2's complement of hex# stored in the w |register. Thanks On the 14-bit parts, you may use 'sublw 0'. This is, obviously, the fastest way to do it. On the 12-bit parts, you may use: addwf reg,w subwf reg,w If 'reg' were to change between the two instructions, the value in W would be corrupted. Given that none of the 12-bit parts support interrupts, though, you should be okay provided 'reg' is not an I/O port or similar register. Hmm... and here I thought the fastest way to increment W without a spare register was: subwf reg,w incf reg,f subwf reg,w decf reg,f but there's a three-cycle way: xorlw 255 addwf reg,w subwf reg,w Cute, eh?