Your routine should work as it is. It will set Byte1 to all 0's and Byte2 will be equal to whatever was in Byte1 when you started...There is probably a better way of doing this copy, but I am sure you have your reasons. Unless you really want to do a rotate you could use: movf Byte1, w movwf Byte2 clrf Byte1 Kieran. P.S. Sorry for including all the original mesage, but I suspect that if I edit even a small part of it, my MSMail will scramble the entire message. ---------- From: Clewer,Brian[SMTP:brian.clewer@TELEMATICS.COM] Sent: 10 July 1997 18:36 To: PICLIST@MITVMA.MIT.EDU Subject: Re: rotate >I am trying to rotate one byte into another, can somebody tell me if >the following is right? > > > movlw 0x08 > movwf count >loop bcf status, carry > rrf Byte1,1 > rrf Byte2,1 > decfsz count > goto loop > >Thanks, > >David David, as the whole principle of this works on the carry in the status register, I think you need a ' BCF STATUS,C ' after the ' RRF Byte2,1' instruction to clear the carry. It should work then (not tested). Brian.