lunes, 4 de noviembre de 2013

actividad instrucciones



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. 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.

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.

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 código máquina.



RCL (Rotación a la izquierda con acarreo).



Sintaxis:

RCL destino, contador

Rotar a la izquierda los bits del operando destino junto con el indicador de acarreo CF el número de bits especificado en el segundo operando. Si el número de bits a desplazar es 1, se puede especificar directamente, en caso contrario el valor debe cargarse en CL y especificar CL como segundo operando. No es conveniente que CL sea mayor de 7, en bytes; ó15, en palabras.







RCR (Rotación a la derecha con acarreo).

Sintaxis:

RCR destino, contador

Rotar a la derecha los bits del operando destino junto con el indicador de acarreo CF el número de bits especificado en el segundo operando. Si el número de bits es 1 se puede especificar directamente; en caso contrario su valor debe cargarse en CL y especificar CL como segundo operando.











ROL (Rotación a la izquierda).

Sintaxis:
ROL destino, contador
Rota a la izquierda los bits del operando destino el número de bits especificado en el segundo operando, que puede ser 1 ó CL previamente cargado con el valor del número de veces.







ROR (Rotación a la derecha).

Sintaxis:
ROR destino, contador
Rota a la derecha los bits del operando destino el número de bits especificado en el segundo operando. Si el número de bits es 1 se puede poner directamente, en caso contrario debe ponerse a través de CL


NOTA: El DESTINO va a ser la direccion y el CONTADOR es el numero de veces que se reètira la instruccion.







Instrucciones de adeudo.









No hay comentarios:

Publicar un comentario