Está en la página 1de 3

Modos de Direccionamiento

Los modos de direccionamiento definen la forma en que el CPU tiene acceso a operandos y datos. En los registros HCS08, registros de memoria, estado y control, y puertos de entrada/salida (I/O) comparten un nico espacio de direcciones de CPU de 64 Kbyte. Esta disposicin implica que las mismas instrucciones de acceso a variables en RAM tambin pueden ser utilizadas para acceder a E/S y registros de control o espacio de programa no voltil. Algunas instrucciones utilizan mas de un modo de direccionamiento. Por ejemplo, instrucciones e movimiento usan un modo de direccin para especificar la fuente del operando y un segundo modo de direccionamiento para especificar la direccin de destino. Instrucciones tales como BRCLR, BRSET, CBEQ y DBNZ utilizan un modo de direccionamiento para especificar la ubicacin de un operando para una prueba y luego usan el modo de direccionamiento relativo para especificar la direccin de destino del salto cuando la condicin probada es verdadera. Para BRCLR, BRSET, CBEQ y DBNZ, el modo de direccionamiento indicado en las tablas de instrucciones es el modo de direccionamiento necesario para acceder al operando a probar, y el modo de direccionamiento relativo es aplicado para el destino del salto.

Modo de direccionamiento Inherente (INH)


En este modo de direccionamiento, los operandos necesarios para completar la instruccin (si los hay), se encuentran dentro de los registros del CPU, as, el CPU no necesita acceder a la memoria para obtener cualquier operando.

Modo de direccionamiento relativo (REL)


Este modo se utiliza para especificar la ubicacin de destino para obtener instrucciones de salto. Un valor designado de 8 bits de desplazamiento se encuentra en la posicin de memoria inmediatamente despus del cdigo de operacin. Durante la ejecucin, si la condicin de salto es verdad, el desplazamiento asignado es extendido a un valor de 16 bits, y se aade a los contenidos actuales del contador de programa; lo que provoca la ejecucin del programa para continuar en la direccin de destino de salto.

Modo de direccionamiento inmediato (IMM)


En este modo, los operandos necesarios para completar la instruccin estn incluidos en el objeto del cdigo inmediatamente despus al cdigo de operaciones de instruccin en la memoria. En el caso de un operando inmediato de 16 bits, el byte de orden superior se encentra en la siguiente posicin de memoria despus del cdigo de operacin, y el byte de orden bajo se encuentra en la siguiente posicin de memoria despus de eso.

Modo de direccionamiento Directo (DIR)


En el modo de direccionamiento directo, la instruccin incluye los 8 bits de orden inferior de una direccin en la pagina directa (0x0000-0x00FF). Durante la ejecucin, una direccin de 16 bits se forman concatenando un 0x00 implcito para la mitad de la direccin de orden alto y la direccin directa de la instruccin para obtener la direccin de 16 bits donde se encuentra el operando deseado. Esto es mas rpido y eficiente en la memoria que especificar una direccin completa de 16 bits para el operando.

Modo de direccionamiento extendido (EXT)


En este modo, la direccin completa de 16 bits del operando se encuentra en los siguientes dos bytes de memoria de programa, luego del cdigo de operacin (primero el byte mayor).

Modo de direccionamiento indexado


El modo de direccionamiento indexado cuenta con siete variaciones, entre las cuales, cinco utilizan el registro ndice H:X de un par de registros; y dos que utilizan el stack pointer como la referencia de base.

Indexado, no offset (IX)


Esta variacin de direccionamiento indexado utiliza el valor de 16 bits en el registro ndice par H:X como la direccin que el operando necesita para completar la instruccin.

Indexado, No offset con Post Incremento (IX+)


Esta variacin utiliza el valor de 16 bits en el ndice de registro par H:X como la direccin del operando necesario para completar la instruccin. El par de registros ndice se incrementa (H:X=H:X+0x0001) despus de que el operando se ha trasladado. Este modo de direccionamiento solo se utiliza para las instrucciones MOV y CBEQ.

Indexado, Offset de 8 bits (IX1)


Esta variacin utiliza el valor de 16 bit en el registro ndice par H:X mas un offset de 8 bits no asignado, incluido en la instruccin como la direccin del operando necesario para completar la instruccin.

Indexado, Offset de 8 bits con Post Incremento (IX1+)


Esta variacin utiliza el valor de 16 bits en el registro ndice par mas un offset de 8 bits no asignado incluido en la instruccin como la direccin del operando necesario para completar la instruccin. El registros ndice par se incrementa (H:X=H:X+0x0001) despus de que el operando se ha trasladado. Este modo de direccionamiento se utiliza solo para la instruccin CBEQ.

Indexado, Offset de 16 bits (IX2)


Esta variacin utiliza el valor de 16 bits en el registro ndice par H:X mas un offset de 16 bits incluido en la instruccin como la direccin del operando necesario para completar la instruccin.

Stack Pointer Relativo, Offset de 8 bits (SP1)


Esta variacin del direccionamiento indexado utiliza el valor de 16 bits en el Stack Pointer (SP), adems de un offset de 8 bits no asignado, incluido en la instruccin como la direccin del operando necesario para completar la instruccin.

Stack Pointer Relativo, Offset de 16 bits (SP2)


Esta variacin utiliza el valor de 16 bits en el Stack Pointer (SP), adems de un offset de 16 bits no asignado, incluido en la instruccin como la direccin del operando necesario para completar la instruccin.

También podría gustarte