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. Todas ellas trabajan sobre un operando fuente y un operando destino.
El
Operando Destino contiene el dato que va a ser objeto del desplazamiento y debe
ser del tipo, registro o memoria.
El Operando Fuente determina la cantidad de posiciones que va a ser desplazado el operando destino. El operando fuente sólo puede ser un dato inmediato de 8 bits (I8) o bien el registro CL.
El Operando Fuente determina la cantidad de posiciones que va a ser desplazado el operando destino. El operando fuente sólo puede ser un dato inmediato de 8 bits (I8) o bien el registro CL.
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. Este proceso se
representa en la figura siguiente.
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, tal y como se muestra en la figura
siguiente.
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. 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.
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.
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. 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 codigocodigo
Instrucciones de Rotación
digo máRCL
DESTINO,CONTADOR ;Rota destino a través de carry a la izquierda contador veces
RCR DESTINO,CONTADOR ;Rota destino a través de carry a la derecha contador veces
ROL DESTINO,CONTADOR ;Rota destino a la izquierda contador veces
ROR DESTINO,CONTADOR ;Rota destino a la derecha contador veces
SAL DESTINO,CONTADOR ;Desplaza destino a la izquierda contador veces y rellena con ceros
SAR DESTINO,CONTADOR ;Desplaza destino a la derecha contador veces y rellena con bit SF
SHR DESTINO,CONTADOR ;Desplaza destino a la derecha contador veces y rellena con ceros
RCR DESTINO,CONTADOR ;Rota destino a través de carry a la derecha contador veces
ROL DESTINO,CONTADOR ;Rota destino a la izquierda contador veces
ROR DESTINO,CONTADOR ;Rota destino a la derecha contador veces
SAL DESTINO,CONTADOR ;Desplaza destino a la izquierda contador veces y rellena con ceros
SAR DESTINO,CONTADOR ;Desplaza destino a la derecha contador veces y rellena con bit SF
SHR DESTINO,CONTADOR ;Desplaza destino a la derecha contador veces y rellena con ceros
NOTA:
El DESTINO va a ser la dirección y el CONTADOR es el número de veces que se repite
la instrucción.
No hay comentarios:
Publicar un comentario