Tipos de Direccionamiento

Share Embed Donate


Short Description

Download Tipos de Direccionamiento...

Description

Tipos de Direccionamiento === Implícito ===  En este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya que en el propio código de operación se conoce la dirección del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar. Supongamos una arquitectura de pila, las operaciones aritméticas no requieren direccionamiento explícito por lo que se ponen como: - add - sub ... ¿Por qué? Porque cuando se opera con dos datos en esta arquitectura se sabe que son los dos elementos del tope de la pila: Ejemplo de una pila 1 2 3 4 5 6 RB se comporta como una dirección de memoria a la que se le sumará el desplazamiento

Respecto a un registro índice Es similar al anterior, lo único que es el contenido del registro índice el que indica el desplazamiento que se produce a partir de una dirección de memoria que se pasa también como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del contenido del registro índice y una dirección de memoria: EA = RI+DM RI = registro índice DM = dirección de memoria -> RI se comporta como un offset

Indexado respecto a una base Se trata de una combinación de los dos anteriores y consiste en calcular la dirección efectiva como: EA = RI+RB+DM -> Las siglas significan lo mismo que en el caso anterior

Respecto al contador de programa

Consiste en dirección una posición de memoria usando como registro base al contador de programa (PC), el funcionamiento es análogo al direccionamiento respecto a registro base con la salvedad de que, en este caso, el offset puede ser también negativo.

Indexado con autoincremento/autodecremento Es un modo de direccionamiento análogo al indexado, explicado anteriormente. La única diferencia es que permite un incremento o decremento de la dirección final o el registro índice según los siguientes casos:

-> Indexado con autopreincremento: Incrementa el registro índice primero (se incrementa un valor, según el tamaño del objeto direccionado) y luego calcula la EA al igual que el direccionamiento indexado. -> Indexado con autoposincremento: Calcula la dirección efectiva y después incrementa esta. -> Indexado con autopredecremento: Decrementa el registro índice y después calcula la dirección efectiva. -> Indexado con autoposdecremento: Calcula la dirección efectica y después decrementa esta.

Instrucción de salto con direccionamiento absoluto Consiste en cargar en el PC el valor que se especifica en la orden de salto, p.e:

 jmp 0xAB ----> Carga 0xAB en PC

Instrucción de salto con direccionamiento relativo Es parecida a la especificada anteriormente la diferencia es que el salto es relativo al PC, pongamos un ejemplo: Supongamos que PC vale = 0x0A, si nosotros interpretamos la instrucción jr +03, saltaremos tres posiciones posteriores a PC (también podría ser -03 y serían posiciones anteriores). Pero, ¡cuidado! si esa instrucción estaba en la posición 0x0A la dirección de PC a incrementar será la inmediatamente posterior (ya que PC se incrementa automáticamente después de leer la instrucción), por lo que quedaría: PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedaría como 0x0E.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF