> What I don't understand is why the assembler didn't throw an error if > incf W,0 isn't allowed. Where does it say it ISN'T allowed? It is certainly allowed, it just doesn't do what you expect. incf W, 0 will assemble without issue. The reason is 'W' is simply a constant while assembling, the preprocessor simply replaces 'W' with it's numerical value (0 IIRC), so the assembler actually sees: incf 0, 0, a perfectly valid opcode. Now, you could say that Microchip could have added something in the assembler to catch these sorts of things. The problem is that is a slippery slope for them, where does the "babying" end? TTYL -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads