Listado 2. Ejemplo De Llamada A Subrutina - Motorola HC05 Manual Del Usuario

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

Listado 2. Ejemplo de Llamada a Subrutina

"
"
"
0300
A6 02
0302
CD 04 00
0305
B7 E0
0307
"
"
"
"
"
"
"
"
0400
4A
0401
26 FD
0403
81
Para la descripción siguiente se puede ver la
LDA #$02 en la dirección $0300. En el lado izquierdo de la figura se muestra el flujo normal del programa
compuesto por TOP LDA #$02, JSR SUBBY y STA $E0 (en este orden) en posiciones de memoria
consecutivas. En el lado derecho de la figura se muestran las instrucciones de la subrutina SUBBY DECA, BNE
SUBBY y RTS.
El número de ciclos de reloj de la CPU entre corchetes de la
descripción siguiente.
[1]
La CPU lee el 'opcode' $A6 de la posición $0300 (LDA inmediato).
[2]
La CPU lee inmediatamente el dato $02 de la posición $0301al acumulador.
[3]
La CPU lee el 'opcode' $CD de la posición $0302 (JSR extendido).
[4]
La CPU lee la parte alta de la dirección extendida $04 de $0303.
[5]
La CPU lee la parte baja de la dirección extendida $00 de $0304.
[6]
La CPU contruye la dirección completa de la subrutina ($0400).
[7]
La CPU escribe $05 en $00FF y decrementa el SP a $00FE. Otra manera de decir esto es: "envía la
parte baja de la dirección de retorno a la pila (stack)".
[8]
La CPU escribe $03 en $00FE y decrementa el SP a $00FD. Otra manera de decir esto es: "envía la
parte alta de la dirección de retorno a la pila". La dirección de retorno en que se guardó la pila es $0305,
que es la dirección de la instrucción que sigue a la instrucción JSR.
[9]
La CPU lee el 'opcode' $4A de la posición $0400. Ésta es la primera instrucción de la llamada a
subrutina.
[10]
La CPU usa la ALU para substraer un valor en el acumulador.
"
TOP
LDA
JSR
STA
"
"
"
SUBBY DECA
BNE SUBBY
RTS
Figura 17. Secuencia de Llamada a Subrutina
#$02
;Carga un valor inmediato
SUBBY
;Salto a subrutina
$E0
;Guarda el acumulador en la RAM
;Decrementa el acumulador
;Lazo hasta acumulador = 0
;Vuelve al programa principal
Figura
17. Se empieza con la ejecución de la instrucción
Figura
17, se usan como referencia para la
40
"
"
"
"
Tabla de contenido
loading

Este manual también es adecuado para:

Hc08

Tabla de contenido