Rotación de bits – desplazamiento circular

Las instrucciones de rotación, que son parte de la capacidad lógica de la computadora, pueden realizar las siguientes acciones:

  1. Hacer referencia a un byte o a una palabra.
  2. Hacer referencia a un registro o a memoria.
  3. Realizar rotación a la derecha o a la izquierda. El bit que es desplazado fuera llena el espacio vacante en la memoria o registro y también se copia en la bandera de acarreo.
  4. Realizar rotación hasta 8 bits en un byte, 16 bits en una palabra y 32 bits en una palabra doble.
  5. Realizar rotación lógica (sin signo) o aritmética (con signo).

El segundo operando contiene un valor de rotación, el cual es una constante (un valor inmediato) o una referencia al registro CL. Para los procesadores 8088/8086, la constante inmediata solo puede ser 1; un valor de rotación mayor que 1 debe estar contenido en el registro CL. Procesadores posteriores permiten constantes inmediatas hasta el 31. El formato general para la rotación es:

|  [etiqueta:]  |  Rotación  |  {registro/memoria}, {CL/inmediato} |

Rotación a la derecha de bits

Las rotaciones a la derecha (ROR y RCR) desplazan a la derecha los bits en el registro designado. Las instrucciones de rotación a la derecha estipulan datos lógicos (sin signo) o aritméticos (con signo):


Las siguientes instrucciones relacionadas ilustran ROR:

INSTRUCCION BH COMENTARIO

MOV    CL, 03
MOV    BH, 10110111B          ; 10110111
SHR    BH, 01                           ; 11011011    Una rotación a la derecha
SHR    BH, CL                          ;  00001011    Tres rotaciones a la derecha
SHR    BX, 03                           ; Válido para 80186 y procesadores posteriores

El primer ROR desplaza el bit de mas a la derecha del BH a la posición vacante de mas a la izquierda. La segunda y tercera operaciones ROR realizan la rotación de los tres bits de mas a la derecha.

RCR provoca que la bandera de acarreo participe en la rotación. Cada bit que se desplaza fuera de la derecha se mueve al CF y el bit del CF se mueve a la posición vacante de la izquierda.

Rotación a la izquierda de bits

Las rotaciones a la izquierda (ROL y RCL) desplazan a la izquierda los bits del registro designado. Las instrucciones de rotación a la izquierda estipulan datos lógicos (sin signo) y aritméticos (con signo):


Las siguientes instrucciones relacionadas ilustran ROL:

INSTRUCCION BL COMENTARIO

MOV    CL, 03
MOV    BL, 10110111B          ; 10110111
SHR    BL, 01                           ; 11011011    Una rotación a la izquierda
SHR    BL, CL                          ;  00001011    Tres rotaciones a la izquierda
SHR    BX, 03                          ; Válido para 80186 y procesadores posteriores

El primer ROL desplaza el bit de mas a la izquierda del BL a la posición vacante de mas a la derecha. La segunda y tercera operaciones ROL realizan la rotación de los tres bits de mas a la izquierda.

De manera similar a RCR, RCL también provoca que la bandera de acarreo participe en la rotación. Cada bit que se desplaza fuera por la izquierda se mueve al CF, y el bit del CF se mueve a la posición vacante de la derecha.

Puede usar la instrucción JC (salta si hay acarreo) para comprobar el bit rotado hacia la CF en el extremo de una operación de rotación.