Andy David wrote: > - 16 cycles > - 16 words 17 if you want to reverse two bytes at once. > - Enter with byte to be reversed in WREG, ends with reversed byte in > WREG. No, it ends with the reversed byte in W, not WREG as written, or in Reverse if you specify F as destination. Unless you're talking of a PIC with which I'm not familiar. > - Isochronous. > > rlf WREG,f ; WR = d6 d5 d4 d3 d2 d1 d0 C {C = d7} > rrf Reverse,f ; Rev = d7 R7 R6 R5 R4 R3 R2 R1 {C = R0} > rlf WREG,f ; WR = d5 d4 d3 d2 d1 d0 C R0 {C = d6} > rrf Reverse,f ; Rev = d6 d7 R7 R6 R5 R4 R3 R2 {C = R1} > rlf WREG,f ; WR = d4 d3 d2 d1 d0 C R0 R1 {C = d5} > rrf Reverse,f ; Rev = d5 d6 d7 R7 R6 R5 R4 R3 {C = R2} > rlf WREG,f ; WR = d3 d2 d1 d0 C R0 R1 R2 {C = d4} > rrf Reverse,f ; Rev = d4 d5 d6 d7 R7 R6 R5 R4 {C = R3} > rlf WREG,f ; WR = d2 d1 d0 C R0 R1 R2 R3 {C = d3} > rrf Reverse,f ; Rev = d3 d4 d5 d6 d7 R7 R6 R5 {C = R4} > rlf WREG,f ; WR = d1 d0 C R0 R1 R2 R3 R4 {C = d2} > rrf Reverse,f ; Rev = d2 d3 d4 d5 d6 d7 R7 R6 {C = R5} > rlf WREG,f ; WR = d0 C R0 R1 R2 R3 R4 R5 {C = d1} > rrf Reverse,f ; Rev = d1 d2 d3 d4 d5 d6 d7 R7 {C = R6} > rlf WREG,f ; WR = C R0 R1 R2 R3 R4 R5 R6 {C = d0} > rrf Reverse,w ; W = d0 d1 d2 d3 d4 d5 d6 d7 {C = R7} ; 17th instruction tidies everything up: rlf WREG,f ; WR = R0 R1 R2 R3 R4 R5 R6 R7 {C = C¡} -- Cheers, Paul B.