modo, la tabla debe empezar en las 256 posiciones de memoria más bajas y puede extenderse a través de las
primeras 511 posiciones de memoria (IFE es la última posición que la instrucción puede acceder). El modo de
direccionamiento indexado con 8-bits de desplazamiento puede usarse para la ROM, RAM o E/S. Ésta es una
instrucción de 2-bytes con el desplazamiento contenido en el byte que sigue al 'opcode'. El contenido del
registro de índice (X) no cambia. El byte de desplazamiento proporcionado en la instrucción es un entero de 8-
bits sin signo.
Listado de Programa Ejemplo:
0300
E6 05
LDA $5,x
Secuencia de la ejecución:
$0300
$E6
[1]
$0301
$05
[2],
Explicación:
[1]
La CPU lee el 'opcode' $E6, carga el acumulador usando el modo de direccionamiento indexado con
desplazamiento de 8-bits.
[2]
Entonces la CPU lee $05 desde la posición $0301. Este $05 es interpretado como la parte baja de la
mitad de una dirección base. La otra mitad de la parte alta se asume que la dirección base es $00.
[3]
La CPU agregará el valor en el registro de índice de la dirección base $0005. El resultado de esta suma
es la dirección que la CPU usará para cargar al acumulador.
[4]
Entonces la CPU leerá el valor de esta dirección y cargará este valor en el acumulador.
Las instrucciones del MC68HC05 que pueden usar el modo de direccionamiento indexado con 8-bits de
desplazamiento son iguales que la lista de instrucciones que pueden usar el modo de direccionamiento indexado
sin ningún desplazamiento (véase la tabla anterior).
Indexado con 16-Bits de Desplazamiento
En el modo de direccionamiento indexado con 16-bits de desplazamiento, la dirección efectiva es la
suma de los contenidos del registro índice de 8-bits y los dos bytes que siguen al 'opcode'. El contenido del
registro de índice no se cambia. Estas instrucciones tienen tres bytes, uno para los 'opcode' y dos para un
desplazamiento de 16-bits.
Listado de Programa Ejemplo:
0300
D6 07 00
Secuencia de la ejecución:
$0300
$D6
[1]
$0301
$07
[2]
$0302
$00
[3],
Explicación:
[1]
La CPU lee el 'opcode' $D6, carga el acumulador usando el modo de direccionamiento indexado con
16-bits de desplazamiento.
[2]
Entonces la CPU lee $07 de la posición $0301. Este $07 es interpretado como la parte alta de la mitad
de una dirección base.
[3]
Entonces la CPU lee $00 de la posición $0302. Este $00 es interpretado como la parte baja de la mitad
de una dirección base.
[4]
La CPU agregará el valor en el registro de índice a la dirección base $0700. Los resultados de esta suma
son la dirección que la CPU usará en la carga del acumulador.
[5]
La CPU leerá el valor de esta dirección y cargará este valor en el acumulador.
A continuación se muestra una lista de todas las instrucciones del MC68HC05 que pueden usar el modo
de direccionamiento indexado con 16-bits de desplazamiento.
;Carga al acumulador desde la posición
;apuntado por el registro de índice (X) + $05
[3],
[4]
LDA $0700,x
;Carga el acumulador desde la posición
;apuntada en el registro de índice (X) + $0700
[4],
[5]
59