16 instrucciones de subrutinas

17
1 INSTRUCCIONES PARA SUBRUTINAS Elaborado por: Ing. Jaime E. Velarde

Upload: jaime-e-velarde

Post on 01-Jul-2015

4.539 views

Category:

Education


4 download

DESCRIPTION

Descripción de las instrucciones para manejo de subrutinas y del Stack

TRANSCRIPT

1

INSTRUCCIONES

PARA SUBRUTINAS

Elaborado por: Ing. Jaime E. Velarde

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

6

PROGRAMA CON INSTRUCCIONES DE

SUBRUTINAS

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

10

SUBRUTINAS ANIDADAS

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

12

ERROR POR SALIR CON SALTO

13

INSTRUCCIONES PUSH y POP

PUSH Rs

Stack Rs

SP SP - 1

POP Rd

SP SP + 1

Rd Stack

14

USO DE PUSH y POP

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

16

ERROR POR DIFERENTE NÚMERO DE

PUSH QUE POP

17

ERROR POR DIFERENTE NÚMERO DE

PUSH QUE POP