Cargar El Acumulador (Modo De Direccionamiento Inmediato); Bifurcación Condicional; Llamada A Una Subrutina Y Retorno De Una Subrutina - Motorola HC05 Manual Del Usuario

Iniciación a los microcontroladores de las familias de 8 bits
Tabla de contenido

Cargar el Acumulador (Modo de Direccionamiento Inmediato)

A continuación, se puede buscar la instrucción LDA en el capítulo Juego de Instrucciones . El modo de
direccionamiento inmediato (IMM) de esta instrucción aparece como A6 ii en la columna de código máquina de
la tabla. Esta instrucción necesita dos ciclos reloj del procesador interno para ser ejecutada.
El 'opcode' $A6 le dice a la CPU que coja el byte de datos que sigue inmediatamente al 'opcode' y que
ponga este valor en el acumulador. Durante el primer ciclo de esta instrucción, la CPU lee el 'opcode' $A6 y
avanza el PC para apuntar a la siguiente posición de memoria (la dirección del operando inmediato ii ). Durante
el segundo ciclo de la instrucción, la CPU lee los contenidos del byte que siguen al 'opcode' en el acumulador y
avanza el PC para apuntar a la siguiente posición de memoria (por ejemplo, el byte del 'opcode' de la siguiente
instrucción).
Mientras el acumulador se estaba cargando, los bits N y Z del registro de código de condición fue
puesto a 0 o a 1, según los datos que estaba cargando en el acumulador. La formula lógica Booleana o resultado
de estos bits para una instrucción determinada aparece en una columna del juego de instrucciones. El bit Z se
pondrá a 1 si el valor cargado en el acumulador fue $00; por otro lado, el bit Z se pondrá a 0. El bit N se pondrá a
1 si el bit más significativo del valor cargado fue 1; por otro lado, el bit N se pondrá a 0.
El bit de código de condición N (negativo) se puede usar para detectar el signo de un número
complemento a dos . En números complemento a dos, el bit más significativo se usa como un bit de signo, 1
indica un valor negativo y 0 indica un valor positivo. El bit N también se puede usar como un simple indicador
de estado del bit más significativo de un valor binario.
Bifurcación Condicional
La instrucción 'branch' (bifurcación) permite a la CPU seleccionar uno de los dos caminos del flujo de
programa, dependiendo del estado de un bit en particular de la memoria o varios bits de código de condición. Si
la condición detectada por la instrucción 'branch' es verdadera, el flujo del programa salta a una posición
especificada de la memoria. Si la condición detectada no es verdadera, la CPU continúa la instrucción que sigue
a la instrucción 'branch'. La decisión en un diagrama de flujo bloquea las instrucciones de bifurcación
condicional en el programa.
La mayoría de instrucciones 'branch' contienen dos bytes, un byte para el 'opcode' y otro byte para el
desplazamiento relativo. La instrucción 'branch' con bit a 0 (BRCLR) y 'branch' con bit a 1 (BRSET) requieren
tres bytes: un byte para el 'opcode', un byte de direccionamiento directo (para especificar la posición de
memoria a ser probada) y otro byte de desplazamiento relativo.
El byte de desplazamiento relativo es interpretado por la CPU como un valor complemento a dos con
signo. Si la condición 'branch' verificada es verdadera, el desplazamiento se agrega al PC y la CPU lee la
siguiente instrucción de esta nueva dirección calculada. Si la condición 'branch' no es verdadera, la CPU
simplemente continúa a la siguiente instrucción después de la instrucción 'branch'.

Llamada a una subrutina y Retorno de una subrutina

Las instrucciones de salto a subrutina (JSR = jump to subrutine) y bifurcación a subrutina (BSR =
branch to subrutine) automatizan el proceso de dejar la línea de flujo normal del programa para irse y ejecutar un
conjunto de instrucciones y después volver al flujo normal de donde se había salido. Al conjunto de
instrucciones fuera del flujo normal del programa se llama subrutina. Una instrucción JSR o BSR se usa para ir
del programa normal a la subrutina. Para volver de una subrutina se usa una instrucción de retorno de subrutina
(RTS), para volver al programa del que la subrutina fue llamada.
El listado 2. Ejemplo de Llamada a Subrutina , muestra un listado en ensamblador que se puede usar
para ver cómo la CPU ejecuta una llamada a una subrutina. Hay que asumir que el indicador de la pila (SP)
apunta a la dirección $00FF cuando la CPU encuentra la instrucción JSR en la posición $0302. Los listados en
ensamblador se describen detalladamente en el capítulo titulado Programando .
39
Tabla de contenido
loading

Este manual también es adecuado para:

Hc08

Tabla de contenido