16 bit Assembly
ADC - Add with Carry
ADD - Add
AND - Bitwise AND
CALL - Call Routine
CLC - Clear Carry Flag
CLD - Clear Direction
CLI - Clear Interupt Flag
CMPS - Compare
CMP - Compare
DEC - Decrement
DIV - Divide
HLT - Halt
IDIV - Divide Signed
IMUL - Multiply Signed
INC - Increment
INS - Input
INT - Interupt
IN - Input
IRET - Interupt Return
JMP - Jump
J - Jump Conditional
LAHF - Load Flags
LDS - Load Far Pointer
LEA - Store Address
LES - Load Far Pointer
LFS - Load Far Pointer
LGS - Load Far Pointer
LODSB - LODSW - Load
LODS - Load
LOOP - Loop
LSS - Load Far Pointer
MOVSB - Move Far
MOVSW - Move Far
MOVS - Move
MOV - Move
MUL - Multiply
NEG - Negate
NOP - No Operation
NOT - Bitwise NOT
OR - Bitwise OR
OUTS - Output
OUT - Output
POP - Stack Retrieval
PUSH - Stack Store
RCL - Roll Left
RCR - Roll Right
REP - Repeat
RET - Return
ROL - Roll Left
ROR - Roll Right
SAHF - Save Flags
SAL - Shift Left
SAR - Shift Right
SBB - Subtract with Borrow
SCAS - Compare
SET - Set Condition
SHL - Shift Left
SHR - Shift Right
STC - Set Carry Flag
STD - Set Direction
STI - Set Interupt Flag
STOSB - STOSW - Store
STOS - Store
SUB - Subtract
TEST - Compare
XADD - Exchange and And
XCHG - Swap
XOR - Bitwise XOR
The RCR instruction is used to rotate the bits to the right.
As each bit is rotated it passes in to the Carry flag, where it can be assessed using a conditional jump JC or JNC.
As each bit moves off the highest bit it is inserted in the lowest bit.
This command has 3 part the Instruction, a Register or memory address, and the number of bits to rotate right.
Assembly
SampleDescription 16 bit Machine
CodeRCR AL, 1 ; Rotate AL right by 1 bit D0 D8 RCR AL, CL ; Rotate AL right by value of CL D2 D8 RCR AL, 0x03 ; Rotate AL right by 8 bit immediate C0 D8 03 RCR AX, 1 ; Rotate AX right by 1 bit D1 D8 RCR AX, CL ; Rotate AX right by value of CL D3 D8 RCR AX, 0x03 ; Rotate AX right by 8 bit immediate C1 D8 03 RCR [BX], 1 ; Rotate memory address right by 1 bit D0 1F RCR [BX], CL ; Rotate memory address right by value of CL D2 1F RCR [BX], 0x03 ; Rotate memory address right by 8 bit
; immediateC0 1F 03 RCR [BX+2], 1 ; Rotate memory address right by 1 bit D1 5F 02 RCR [BX+2], CL ; Rotate memory address right by value of CL D2 5F 02 RCR [BX+2], 0x03 ; Rotate memory address right by 8 bit
; immediateC0 5F 02 03