16 instrucciones de subrutinas
DESCRIPTION
Descripción de las instrucciones para manejo de subrutinas y del StackTRANSCRIPT
2
EN ASSEMBLER, AL IGUAL QUE
EN LOS LENGUAJES DE ALTO
NIVEL, SE PUEDE OPTIMIZAR LOS
PROGRAMAS MEDIANTE EL USO
DE “SUBRUTINAS”
A LAS SUBRUTINAS SE PUEDE
CONSIDERAR COMO UN
CONJUNTO DE INSTRUCCIONES
QUE SE REPITEN VARIAS VECES
EN EL PROGRAMA, PERO EN
DISTINTAS PARTES DEL MISMO
3
LAS INSTRUCCIONES QUE
PERMITEN EL USO DE
SUBRUTINAS SON
INSTRUCCIONES QUE REALIZAN
SALTOS
PERO, SE DIFERENCIAN PORQUE
ESTAS INSTRUCCIONES
MEMORIZAN LA DIRECCIÓN DE
LA SIGUIENTE INSTRUCCIÓN
PARA PODER RETORNAR
CUANDO SE FINALIZA LA
SUBRUTINA
4
TRANSICIÓN DE UN PROGRAMA SIN
SUBRUTINAS A OTRO CON SUBRUTINAS
ESTA SOLUCIÓN
NO ES
EQUIVALENTE A
LA ANTERIOR
5
ANÁLISIS DE LA EJECUCIÓN DE LOS
DOS PROGRAMAS
EL PROBLEMA RADICA EN
QUE ESTE SALTO TIENE
DIFERENTES DESTINOS
7
LLAMADAS A SUBRUTINA
CALL dirección16
Stack PC7…0
SP SP - 1
Stack PC15…8
SP SP - 1
PC dirección16
RCALL dirección12
Stack PC7…0
SP SP - 1
Stack PC15…8
SP SP - 1
PC11…0
dirección12
8
RETORNO DE SUBRUTINA y
RETORNO DE INTERRUPCIÓN
RET
SP SP + 1
PC15…8
Stack
SP SP + 1
PC7…0 Stack
RETI
SP SP + 1
PC15…8
Stack
SP SP + 1
PC7…0 Stack
Reposición del
Sistema de
Interrupciones
9
LA PILA O STACK
EL STACK ES LA ZONA DE LA SRAM
UTILIZADA PARA GUARDAR LAS
DIRECCIONES DE RETORNO DE LAS
SUBRUTINAS
ES UNA MEMORIA SECUENCIAL TIPO
LIFO ( LAST INPUT FIRST OUTPUT),
CRECE HACIA LOCALIDADES
INFERIORES
SE RECOMIENDA UBICARLA EN LAS
ÚLTIMAS LOCALIDADES DE LA SRAM,
PARA NO INTERFERIR CON LOS DATOS
QUE PROCESA EL PROGRAMA
11
NUNCA SALIR MEDIANTE SALTOS
LAS SUBRUTINAS SIEMPRE DEBEN
TERMINAR CON LA INSTRUCCIÓN
DE RETORNO
LA SALIDA MEDIANTE SALTOS
DESDE LAS SUBRUTINAS, CAUSA
MAL FUNCIONAMIENTO DEL STACK
QUE CRECE SIN LÍMITE; YA QUE,
NO SE LIBERAN LAS LOCALIDADES
OCUPADAS
15
PUSH Y POP DEBEN SER IGUALES
CUANDO LAS SUBRUTINAS
EJECUTAN UN NÚMERO
DIFERENTE DE INSTRUCCIONES
PUSH QUE DE POP, SE PRODUCE
UN MAL FUNCIONAMIENTO DEL
STACK
LAS DIRECCIONES DE RETORNO
QUE SE RECUPERAN SON
DIFERENTES A LAS QUE SE
GUARDARON