| NAME | ROL, ROR -- Rotate left and rotate right | 
| SYNOPSIS | 
where d is direction, L or R| ROd | Dx,Dy |  | ROd | #<data>,Dy |  | ROd | <ea> |  Size = (Byte, Word, Long)
 | 
| FUNCTION | Rotate the bits of the operand in the specified direction.
The rotation count may be specified in two different ways: 
For a register, the size may be byte, word, or long, but for a memory
location, the size must be a word. The rotation count is also
restricted to one for a memory location.Immediate - the rotation count is specified in the instruction
Register - the rotation count is contained in a data register
    specified in the instruction
 
|  | . | -------->-------- | . |  | ROL: | | |  | | |  |  | C | <------ OPERAND <--- | ' |  |  |  | <--- |  |  
| ROR: | , | -------<------- | . |  |  | | |  | | |  |  | ` | --> OPERAND -----> | C 
 |  |  |  | ---> |  |  | 
| FORMAT | In the case of the rotating of a register: 
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
|---|
 | 1 | 1 | 1 | 0 | NUMBER/REGISTER | dr | SIZE | i/r | 1 | 1 | REGISTER |  
In the case of the rotating of a memory area:
 
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
|---|
 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | dr | 1 | 1 | MODE | REGISTER |  |  | <ea> |  | 
| NUMBER/REGISTER | Specifies number of rotating or number of register which contents
the number of rotating. If i/r = 0, number of rotating is specified in the instruction as
immediate data
 If i/r = 1, it's specified in the data register.
 If dr = 0, right rotating
 If dr = 1, left rotating
 | 
| SIZE | 
| 00 | -> | one Byte operation |  | 01 | -> | one Word operation |  | 10 | -> | one Long operation |  | 
| REGISTER | For a register rotating: Indicates the number of data register on which rotating is applied.
 
For a memory rotating:<ea> indicates operand which should be rotated.
 
Only addressing modes relatives to memory are allowed:
 
| 
| Addressing Mode | Mode | Register | 
|---|
 | Dn | - | - |  | An | - | - |  | (An) | 010 | No reg. An |  | (An)+ | 011 | No reg. An |  | -(An) | 100 | No reg. An |  | (d16,An) | 101 | No reg. An |  | (d8,An,Xi) | 110 | No reg. An |  | (bd,An,Xi) | 110 | No reg. An |  | ([bd,An,Xi]od) | 110 | No reg. An |  | ([bd,An],Xi,od) | 110 | No reg. An |  | 
| Addressing Mode | Mode | Register | 
|---|
 | Abs.W | 111 | 000 |  | Abs.L | 111 | 001 |  | (d16,PC) | - | - |  | (d8,PC,Xi) | - | - |  | (bd,PC,Xi) | - | - |  | ([bd,PC,Xi],od) | - | - |  | ([bd,PC],Xi,od) | - | - |  | #data | - | - |  |  | 
| RESULT | 
| X | - | Not affected |  | N | - | Set if the result is negative. Cleared otherwise. |  | Z | - | Set if the result is zero. Cleared otherwise. |  | V | - | Always cleared |  | C | - | Set according to the last bit shifted out of the operand. |  |