direccionamiento por registros e indirecto

Upload: hh

Post on 14-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Direccionamiento Por Registros e Indirecto

TRANSCRIPT

DIRECCIONAMIENTO POR REGISTROS:

El direccionamiento a registro indica el nombre de un registro como fuente o destino de los datos de una instruccin, la forma de indicarlo es escribiendo simplemente el nombre de dicho registro. Por ejemplo, para guardar el contenido del registro AX en la pila se utilizar la instruccin push con este modo de direccionamiento: PUSH AX. Cuando tenga una instruccin con dos operandos (destino y fuente), obligatoriamente ambos debern ser del mismo tamao: MOV BX, CX.

Se mencion anteriormente que el campo de direccin de una instruccin puede especicar una palabra de memoria o un registro del procesador. Cuando se da este ltimo caso se dice que el operando est especicado con direccionamiento directo por registro, en tal caso, el operando reside en uno de los registros del procesador que es seleccionado por un campo de registro de k bits en la instruccin. Este campo de k bits puede especicar uno de 2k registros.Este modo es tpico de los ordenadores con organizacin de registros de uso general.

Las ventajas de este modo son:

El acceso a los registros es muy rpido, por tanto el direccionamiento por registro debe usarse en las variables que se usen con ms frecuencia para evitar accesos a memoria que son ms lentos, un ejemplo muy tpico del uso de este direccionamiento son los ndices de los bucles.

El nmero de bits necesarios para especicar un registro es mucho ms pequeo que el necesario para especicar una direccin de memoria, esto es debido a que el nmero de registros del procesador es muy pequeo comparado con el nmero de direcciones de memoria. Sin embargo, hay que tener en cuenta que en los ordenadores modernos el nmero de registros ha aumentado considerablemente.

MODO INDIRECTO POR REGISTROS:En ocasiones se necesita trabajar con varios datos, pero cada uno en una direccin diferente. Repetir el mismo cdigo cambiando nicamente en cada caso la direccin desde la que obtener el dato sera muy pesado. Por ello existe el modo de direccionamiento indirecto, en el que la direccin de memoria desde la que se obtiene o en la que se escribe el dato se encuentra almacenada en un registro. La forma de representar este modo de direccionamiento es como el anterior pero colocando entre los corchetes el nombre del registro.

En el registro tendremos almacenado el desplazamiento de la posicin de memoria a la que queremos acceder respecto a un segmento que se tomar por defecto dependiendo del registro que utilicemos. En caso de querer referirnos a otro segmento diferente al asignado por defecto a cada registro, se deber indicar cul es.En la siguiente tabla se indican los segmentos por defecto para cada registro:

Ejemplos:

MOV AX, [SI] mueve a AX el contenido de la posicin de memoria DS: SIMOV BX, [BP] mueve a BX el contenido de la posicin de memoria SS: BPMOV CX, ES: [DI] mueve a CX el contenido de la posicin de memoria ES: DIMOV [BP], AX mueve a la posicin de memoria SS: BP el contenido de AX.

En este modo el campo de operando de la instruccin indica la localizacin de la direccin efectiva del operando. El modo de direccionamiento indirecto puede adquirir diferentes formas segn cul sea el lugar donde se encuentre la direccin del operando. En general, todos los modos de direccionamiento tienen su versin indirecta que aade un eslabn ms a la cadena del direccionamiento. Por ejemplo existe el direccionamiento indirecto por registro, en el que el registro especicado contiene la direccin del operando, no el operando mismo.

Este direccionamiento es til cuando se trabaja con apuntadores ya que los apuntadores son variables que contienen las direcciones de los operandos, no los operandos mismos.