SX Microcontroller Bit Math Method

Rotate a value without using carry.

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.