DESPLAZAMIENTO O Corrimiento
de bits a la izquierda.
Los corrimientos hacia la izquierda (SHL y SAL) mueven los bits a la
izquierda, en el registro designado. SHL y SAL son idénticos en su operación.
El bit desplazado fuera del registro ingresa a la bandera de acarreo. Las
instrucciones de corrimiento hacia la izquierda estipulan datos lógicos (sin
signo) y aritméticos (con signo):
SHL: Desplazamiento lógico a la izquierda SAL: Desplazamiento aritmético a la izquierda
Las siguientes instrucciones relacionadas ilustran SHL para datos sin
signo:
INSTRUCCION COMENTARIO
MOV CL, 03
MOV AL,
10110111B ; AL = 10110111
SHL AL,
01
; AL = 01101110 Un corrimiento a la izquierda
SHL AL,
CL ;
AL = 01110000 Tres corrimientos mas
El primer SHL desplaza el contenido de AL un bit hacia la izquierda. El
bit de más a la izquierda ahora se encuentra en la bandera de acarreo, y el último
bit de la derecha del AL se llena con cero. El segundo SHL desplaza tres bits más
a AL. La bandera de acarreo contiene en forma sucesiva 0, 1 y 1, y se llena con
tres ceros a la derecha del AL.
Los corrimientos a la izquierda llenan con cero el bit de mas a la
derecha. Como resultado de esto, SHL y SAL don idénticos. Los corrimientos a la
izquierda en especial son útiles para duplicar valores y son mucho más rápidos
que usar una operación de multiplicación.
Al terminar una operación de corrimiento, puede utilizar la instrucción
JC (Salta si hay acarreo) para examinar el bit que ingreso a la bandera de
acarreo.
· SHR desplazar a la derecha
SHR (Shift Right = desplazamiento a la derecha)
(s) shr {R|M}, {cl|I8}
(explicación)
La instrucción shr funciona de la misma forma que shl, pero desplazando los bits a la derecha en
lugar de a la izquierda, tal y como se muestra en la figura siguiente.
· SAR desplazamientoaritmético a la derecha
SAR (Shift Arithmetic
Right = desplazamiento aritmético a la derecha)
(s) sar {R|M}, {cl|I8}
(explicación)
Esta instrucción
desplaza los bits del operando destino a la derecha tantos bits como indique el
operando fuente. Esta forma de funcionamiento es similar a la de la instrucción
shr; sin embargo, ambas instrucciones se
diferencian en que sar, en vez introducir ceros por la izquierda
del operando, replica el bit de mayor peso (bit de signo) en cada
desplazamiento. esquemáticamente, la instrucción sar trabaja de la siguiente forma:
El
desplazamiento a la derecha realizado por la instrucción sar recibe
el nombre de aritmético porque sirve para dividir un operando entre una potencia entera
de 2.
El
desplazamiento aritmético a la derecha de un operando (considerado con signo) n posiciones equivale
a la división entera del operando entre 2n.
(ejemplo)
Supongamos que se
desea desplazar aritméticamente el contenido del registro AL dos posiciones a
la izquierda, y que el contenido de este registro antes de realizar el
desplazamiento es B0h, que interpretado en complemento a 2 equivale al entero
-80.
· ROL rotación a 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):
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.
· ROR rotación a la derecha
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
COMENTARIO
MOV CL, 03
MOV BH,
10110111B ; BH = 10110111
ROR BH,
01 ;
BH = 11011011 Una rotación a la derecha
ROR BH,
CL ; BH
= 00001011 Tres rotaciones a la derecha
El primer ROR desplaza el bit de más a la derecha del BH a la posición
vacante de más 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.
· RCL rotación con acarreo a 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
COMENTARIO
MOV CL, 03
MOV BL,
10110111B ; BL = 10110111
SHR BL,
01 ;
BL = 11011011 Una rotación a la izquierda
SHR BL,
CL ;
BL = 00001011 Tres rotaciones a la izquierda
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.
· CLC borrar acarreo
Propósito: Limpiar bandera de acarreo.
Sintaxis:
CLC
Esta instrucción apaga el bit correspondiente a la bandera de acarreo, o sea, lo pone en cero.
·STC poner acarreo a 1
No hay comentarios:
Publicar un comentario