Las instrucciones de desplazamiento son cuatro: shl, shr,
sar y sal; y su objetivo es desplazar los bits de un operando un determinado
número de posiciones a la izquierda o a la derecha. La estructura de los
operandos manejados por estas instrucciones y su significado es idéntico para
las cuatro instrucciones.
·
SHL (Shift Left = desplazamiento a la
izquierda)
Se desplazan a la izquierda los bits del operando
destino tantas posiciones como indique el operando fuente. El desplazamiento de
una posición se realiza de la siguiente forma: el bit de mayor peso del
operando se desplaza al bit CF del registro de estado, el resto de los bits se
desplazan una posición hacia la izquierda, y la posición de menor peso se
rellena con un 0
·
SAL (Shift Arithmetic Left = desplazamiento
aritmético a la izquierda)
El objetivo de un desplazamiento aritmético a la
izquierda es multiplicar un operando, interpretado con signo, por una potencia
de 2.
Para llevar a cabo este tipo de desplazamiento, hay que
desplazar los bits del operando hacia la izquierda introduciendo ceros por su
derecha.
Nota: En realidad, este tipo de
desplazamiento es idéntico al llevado a cabo por la instrucción shl; por tanto,
sal y shl son de hecho la misma instrucción y se codifican con el mismo código
máquina.
·
SHR (Shift Right = desplazamiento a la
derecha)
La instrucción shr funciona de la misma forma que
shl, pero desplazando los bits a la derecha en lugar de a la izquierda.
·
SAR (Shift Arithmetic Right = desplazamiento
aritmético a la derecha)
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.
No hay comentarios.:
Publicar un comentario