Page 72
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Image_283_0
Tabla 5-3 – Instrucciones con Modo de Direccionamiento Extendido
Modo de Direccionamiento Directo
El modo de direccionamiento directo, es similar al extendido excepto que la parte alta
de la dirección del operando se asume de valor $00. De tal manera, que sólo es
necesario incluir el byte de menos peso de la dirección del operando en la instrucción.
Esta área se denomina página directa e incluye a los registros de RAM e I/O del
interior del chip. Este modo es eficiente tanto en economía de espacio de memoria de
programa como en menor tiempo de ejecución. Esta es una instrucción de dos bytes,
uno para el código de operación y otro para el byte de menor peso de la dirección del
operando.
Listado del Programa de Ejemplo:
0300 B6 E0 LDA $E0 ; Cargar el acumulador desde una dirección de
página
; directa
Secuencia de Ejecución:
$0300 $B6 [1]
$0301 $E0 [2] y [3]
Explicación:
[1] la CPU lee el código de operación $B6 - Carga del acumulador usando el modo de
direccionamiento directo.
[2] La CPU lee $E0 de la posición de memoria $0301. Este $E0 es interpretado como la
mitad de menor peso de una dirección de página directa (desde $0000 hasta $00FF).
__rendered_path__13
72
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 73
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
[3] La CPU arma la dirección directa completa $00E0 asumiendo el valor del byte de
mayor peso en $00, con el valor previamente leído del byte de menor peso. Esta
dirección es colocada en el bus de direcciones y la CPU lee el valor del dato contenido
en la posición de memoria $00E0 y lo carga en el acumulador.
La tabla 5-4 incluye una lista de todas las instrucciones del MC68HC05 que pueden
usar el modo de direccionamiento directo.
Image_287_0
Tabla 5-4 – Instrucciones con Modo de Direccionamiento Directo.
__rendered_path__13
73
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 74
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Modo de Direccionamiento Indexado
En el modo de direccionamiento indexado, la dirección efectiva del operando es
variable y depende de dos factores: 1) el contenido actual del registro índice (X) y 2) el
desplazamiento contendido en el / los byte/s siguiente/s al código de operación. La CPU
del MC68HC05 soporta tres tipos de direccionamientos indexados: sin desplazamiento,
con desplazamiento de 8 bits y con desplazamiento de 16 bits. Un buen ensamblador
usará el modo de direccionamiento indexado que requiera el menor número de bytes
para expresar el desplazamiento.
Indexado sin desplazamiento. En el modo de direccionamiento indexado sin
desplazamiento, la dirección efectiva del operando para la instrucción está contenida en
los 8 bits del registro índice. Así, este modo de direccionamiento puede acceder a las
primeras 256 posiciones de memoria (desde $0000 hasta $00FF). Esta es una
instrucción de un solo byte.
Listado del Programa de Ejemplo:
0300 F6 LDA 0,X ; Cargar el acumulador desde la dirección
apuntada
; por X
Secuencia de Ejecución:
$0300 $F6 [1], [2] y [3]
Explicación:
[1] La CPU lee el código de operación $F6 - Carga del acumulador usando el modo de
direccionamiento indexado sin desplazamiento.
[2] la CPU arma la dirección completa sumando $0000 al contenido del registro índice
de 8 bits (X).
[3] Esta dirección es colocada en el bus de direcciones y la CPU lee el valor del dato
contenido en esa posición de memoria y lo carga en el acumulador.
La tabla 5-5 incluye una lista de todas las instrucciones del MC68HC05 que pueden
usar el modo de direccionamiento indexado sin desplazamiento y con desplazamiento
de 8 bits.
__rendered_path__13
74
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 75
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Image_294_0
Tabla 5-5 – Instrucciones con Modo de Direccionamiento Indexado
(No offset o 8 Bits Offset)
Indexado con desplazamiento de 8 bits. En el modo de direccionamiento indexado
con desplazamiento de 8 bits, la dirección efectiva es la suma del contenido del registro
índice de 8 bits y el byte de desplazamiento siguiente al código de operación. El byte de
desplazamiento suministrado en la instrucción es un número entero no signado de 8 bits.
Esta es una instrucción de dos bytes, uno para el código de operación y otro para el byte
de desplazamiento. El contenido del registro índice no es alterado.
Listado del Programa de Ejemplo:
0300 E6 05 LDA 5,X ; Cargar el acumulador desde el 6to. ítem de
la
; tabla apuntada por X
Secuencia de Ejecución:
$0300 $E6 [1]
$0301 $05 [2], [3] y [4]
__rendered_path__13
75
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 76
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Explicación:
[1] La CPU lee el código de operación $E6 - Carga del acumulador usando el modo de
direccionamiento indexado con desplazamiento de 8 bits.
[2] La CPU lee $05 de la posición de memoria $0301. Este $05 es interpretado como
un desplazamiento de 8 bits.
[3] La CPU arma la dirección completa sumando el valor antes leído ($05) al contenido
del registro índice de 8 bits (X).
[4] Esta dirección es colocada en el bus de direcciones y la CPU lee el valor del dato
contenido en esa posición de memoria y lo carga en el acumulador.
La tabla 5-5 incluye una lista de todas las instrucciones del MC68HC05 que pueden
usar el modo de direccionamiento indexado sin desplazamiento y con desplazamiento
de 8 bits.
Indexado con desplazamiento de 16 bits. En el modo de direccionamiento indexado
con desplazamiento de 16 bits, la dirección efectiva es la suma del contenido del
registro índice de 8 bits y los dos bytes de desplazamiento siguientes al código de
operación. El byte de desplazamiento suministrado en la instrucción es un número
entero no signado de 16 bits. Esta es una instrucción de tres bytes, uno para el código de
operación y otros dos para los bytes de desplazamiento. El contenido del registro índice
no es alterado.
Listado del Programa de Ejemplo:
0300 D6 03 77 LDA $377,X ; Cargar el acumulador desde el
X+1er.
; ítem de la tabla $0377
Secuencia de Ejecución:
$0300 $D6 [1]
$0301 $03 [2]
$0302 $77 [3], [4] y [5]
Explicación:
[1] La CPU lee el código de operación $D6 - Carga del acumulador usando el modo de
direccionamiento indexado con desplazamiento de 16 bits.
[2] La CPU lee $03 de la posición de memoria $0301. Este $03 es interpretado como la
mitad de mayor peso de una dirección base.
[3] La CPU lee $77 de la posición de memoria $0302. Este $77 es interpretado como la
mitad de menor peso de una dirección base.
__rendered_path__13
76
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 77
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
[4] La CPU arma la dirección completa sumando la dirección base de 16 bits antes
leída ($0377) al contenido del registro índice de 8 bits (X).
[5] Esta dirección es colocada en el bus de direcciones y la CPU lee el valor del dato
contenido en esa posición de memoria y lo carga en el acumulador.
La tabla 5-6 incluye una lista de todas las instrucciones del MC68HC05 que pueden
usar el modo de direccionamiento indexado desplazamiento de 16 bits.
Image_301_0
Tabla 5-6 – Instrucciones con Modo de Direccionamiento Indexado
(16 bits de Offset)
__rendered_path__13
77
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 78
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Modo de Direccionamiento Relativo
El modo de direccionamiento relativo es usado solamente por las instrucciones de
bifurcación (saltos condicionados). Las instrucciones de bifurcación, salvo las
bifurcaciones en su versión de manipulación de bits generan dos bytes de código de
máquina: uno para el código de operación y otro para el desplazamiento relativo. Ya
que es deseable bifurcar en cualquier sentido, el byte de desplazamiento es un número
signado según el convenio de complemento a dos con un rango que va desde -128 hasta
+127 bytes (respecto a la dirección de la instrucción inmediata posterior a la instrucción
de bifurcación). Si la condición de salto es verdad, el contenido de los 8 bits del byte
con signo siguiente al código de operación (desplazamiento) es sumado al contenido del
contador de programa para formar la dirección de bifurcación efectiva; de otro modo, el
control continúa bajo la instrucción inmediata posterior a la instrucción de bifurcación.
Un programador especifica el destino de una bifurcación como una dirección absoluta
(o rótulo que hace referencia a una dirección absoluta). El ensamblador calcula el
desplazamiento relativo de 8 bits con signo, que es colocado en memoria luego del
código de operación de la bifurcación.
Listado del Programa de Ejemplo:
0300 27 rr BEQ DEST ; Bifurcar a DEST si Z = 1 (si es igual o
cero)
Secuencia de Ejecución:
$0300 $27 [1]
$0301 $ [2] y [3]
Explicación:
[1] La CPU lee el código de operación $27 - Bifurcar si Z = 1. El bit Z del registro de
código de condición será uno si el resultad de la operación aritmética o lógica previa fue
cero.
[2] La CPU lee $rr de la posición de memoria $0301. Este $rr es interpretado como el
valor de desplazamiento relativo. Después de este ciclo el contador de programa apunta
al primer byte de la próxima instrucción ($0302).
[3] Si el bit Z está en cero, nada sucede en este ciclo y el programa debe continuar con
la próxima instrucción. Si el bit Z está en uno, la CPU armará la dirección completa
sumando el desplazamiento signado antes leído ($rr) al contenido del registro contador
de programa para obtener la dirección destino de la bifurcación. Esto provoca que la
ejecución del programa continúe desde una nueva dirección (DEST).
La tabla 5-7 incluye una lista de todas las instrucciones del MC68HC05 que pueden
usar el modo de direccionamiento relativo.
__rendered_path__13
78
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar

Page 79
Curso Introductorio sobre Microcontroladores familias HC705 y HC908 de Freescale
Image_308_0
Tabla 5-7 – Instrucciones con Modo de Direccionamiento Relativo
Instrucciones de Evaluación de bits y de Bifurcación
Estas instrucciones usan modo de direccionamiento directo para especificar la posición
de memoria a evaluar y direccionamiento relativo para especificar la dirección destino
de la bifurcación. Este texto trata a estas instrucciones como de direccionamiento
directo. En documentación antigua de Motorola se denomina al modo de
direccionamiento de estas instrucciones BTB como "bit test and branch".
Instrucciones Ordenadas por su Tipo
Las tablas 5-8 a 5-11 incluyen las listas de todo el repertorio de las instrucciones del
MC68HC05 agrupadas por su tipo.
__rendered_path__13
79
Autor : Ing. Daniel Di Lella – Dedicated Field Application Engineer
__rendered_path__9__rendered_path__11
www.edudevices.com.ar - dilella@arnet.com.ar