Hi Mike, > The examples below show the difference: > xorwf reg ; reg = reg xor W, assembler issues > warning. > xorwf reg,f ; reg = reg xor W > xorwf reg,w ; W = reg xor W > > The xorwf in the example can be any of the following: > addwf, subwf, iorwf, xorwf, andwf : use W as part of the operation. > movf, incf, decf, swapf, rlf, rrf, comf : Ignore W on input. > incfsz, decfsz : Ignore W on input, skip if result is 0. > clrf : a special case as the assembler always forces ,f but won't allow > it explicitly. The "instruction" clrw is internally clrf xxx,w. This last bit you wrote. clrf xxx,w Does one suppose that it will do a read on a port if the xxx were to be one of the valid port registers. Just thinking about the implications when (foolhardily) using interrupt on change on portB while running. Will a badly assemble formated clrw instruction cause the port registers to be updated without having any apparent effect on the register. Is this one way to check if you are running on silicon or a simulator :-) Cheers -- Kalle Pihlajasaari kalle@ip.co.za http://www.ip.co.za/ip Interface Products P O Box 15775, DOORNFONTEIN, 2028, South Africa + 27 (11) 402-7750 Fax: 402-7751 http://www.ip.co.za/people/kalle DonTronics, Silicon Studio and Wirz Electronics uP Product Dealer