Instrucciones de flujo de control o de bifurcación y salto
Las
instrucciones de flujo de control son aquellas instrucciones que alteran
el orden secuencial de la ejecución de un programa. También hay
instrucciones que posibilitan la interrupción de la ejecución o saltar a
ejecutar otro programa. Cuando termina cualquiera de estas
instrucciones, el programa continúa ejecutándose desde el punto en el
que se interrumpió.
Instrucciones de desplazamiento:
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.
