Rotate a value without using carry.
mov W, <<RAM ;initialize carry with MSb of RAM rl RAM ;rotate, MSb from carry is shifted into LSb of RAM
The normal Rotate-instructions are 9-bit (Carry into lowest bit, highest bit into Carry). This modification creates a 8-bit Rotate. (Highest bit into Lowest bit). The first line places the MSBit of RAM into Carry and then the second actually performs the rotate.
If you would like to rotate without affection the carry you can do it like that:
;right cycle shift mov W, >>RAM rr RAM rl WREG ;restore carry
;left cycle shift mov W, <<RAM rl RAM rr WREG ;restore carry
Note that bit 7 (RTW) of OPTION should be cleared to allow access to working register as a file register.