universidad nacional de quilmes - orga.blog.unq.edu.ar

116
Ciclo de ejecuci´ on revisado Rutinas Contratos Pila Arquitectura Q3 Modularizaci´ on y reuso de c´ odigo Organizaci´ on de computadoras Universidad Nacional de Quilmes May 12, 2020 Orga - UNQ Modularizaci´ on y reuso de c´ odigo

Upload: others

Post on 29-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacion y reuso de codigo

Organizacion de computadoras

Universidad Nacional de Quilmes

May 12, 2020

Orga - UNQ Modularizacion y reuso de codigo

Page 2: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Repaso

Q1

Q2

1 Memoria1 celdas2 palabras3 MAR MBR4 relacion con circuitos conocidos

(decodificador)

2 Buses1 de Direcciones2 de Datos3 de Control

3 Q21 Modo de direccionamiento directo

4 Ciclo de ejecucion revisado:1 Cantidad de accesos

Orga - UNQ Modularizacion y reuso de codigo

Page 3: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

Orga - UNQ Modularizacion y reuso de codigo

Page 4: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

Buscar la instrucción

Decodificar la instrucción

Ejecutar la instrucción

Buscar operando

El operandoestá en

memoria?

SINO

Almacenar resultado

¿El resultadoestá en

memoria?SI

NO

¿En que parte de lamemoria se busca la

instruccion?

Orga - UNQ Modularizacion y reuso de codigo

Page 5: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

¿Como sabe la UC cual es la celda que debe leercada vez?

Utiliza un registro especial: Program Counter (PC)

Orga - UNQ Modularizacion y reuso de codigo

Page 6: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

¿Como sabe la UC cual es la celda que debe leercada vez?

Utiliza un registro especial: Program Counter (PC)

Orga - UNQ Modularizacion y reuso de codigo

Page 7: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

¿Donde se almacena la instruccion leıda?

En otro registro especial: Instruction Register (IR)

Orga - UNQ Modularizacion y reuso de codigo

Page 8: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

¿Donde se almacena la instruccion leıda?

En otro registro especial: Instruction Register (IR)

Orga - UNQ Modularizacion y reuso de codigo

Page 9: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

Buscar la instrucción

Decodificar la instrucción

Ejecutar la instrucción

Buscar operando

El operandoestá en

memoria?

SINO

Almacenar resultado

¿El resultadoestá en

memoria?SI

NO

1 Se hace una lectura de lacelda de memoria que indicaPC.

2 El contenido de la celdaleida se carga en IR

3 Se incrementa PC en 1

Orga - UNQ Modularizacion y reuso de codigo

Page 10: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ciclo de ejecucion revisado

0 01011 10102 00003 11114 1100

La instruccion actual es 0101

El valor de PC es 1

Orga - UNQ Modularizacion y reuso de codigo

Page 11: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Registros reservados

Entonces...

PC (Program Counter) indica la direccion de lasiguiente instruccion a ejecutar

IR (Instruction Register) Almacena el codigo maquinade la instruccion actual

Orga - UNQ Modularizacion y reuso de codigo

Page 12: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=0

Orga - UNQ Modularizacion y reuso de codigo

Page 13: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=02 Busqueda de instruccion:

1 Lectura de la celda 00002 IR=12003 PC=0001

Orga - UNQ Modularizacion y reuso de codigo

Page 14: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=0

2 Busqueda de instruccion (celda 0000)

3 Decodificacion de la instruccion: MOV [??], 0x??

Orga - UNQ Modularizacion y reuso de codigo

Page 15: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=0

2 Busqueda de instruccion (celda 0000)

3 Decodificacion de la instruccion: MOV [??], 0x??

4 Busqueda de instruccion:1 Lectura de la celda 00012 IR=1200000F3 PC=0002

Orga - UNQ Modularizacion y reuso de codigo

Page 16: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=0

2 Busqueda de instruccion (celda 0000)

3 Decodificacion de la instruccion: MOV [??], 0x??

4 Busqueda de instruccion (celda 0001)5 Busqueda de instruccion:

1 Lectura de la celda 00022 IR=1200000F11113 PC=0003

Orga - UNQ Modularizacion y reuso de codigo

Page 17: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 0000

1 PC=0

2 Busqueda de instruccion (celda 0000)

3 Decodificacion de la instruccion: MOV [??], 0x??

4 Busqueda de instruccion (celda 0001)

5 Busqueda de instruccion (celda 0002)

6 Decodificacion de la instruccion: MOV [000F], 0x1111

Orga - UNQ Modularizacion y reuso de codigo

Page 18: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Program Counter: Ejemplo

0000 12000001 000F0002 11110003 29C80004 A0A00005 00000006 00000007 00000008 00000009 0000000A 0000000B 0000000C 0000000D 0000000E 0000000F 1111

1 PC=0

2 Busqueda de instruccion (celda 0000)

3 Decodificacion de la instruccion: MOV [??], 0x??

4 Busqueda de instruccion (celda 0001)

5 Busqueda de instruccion (celda 0002)

6 Decodificacion de la instruccion: MOV [000F], 0x1111

7 Ejecucion de la instruccion

Orga - UNQ Modularizacion y reuso de codigo

Page 19: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

La decodificacion de la instruccion NO es eldesensamblado

Orga - UNQ Modularizacion y reuso de codigo

Page 20: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Desafıos

Orga - UNQ Modularizacion y reuso de codigo

Page 21: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Hacer un programa que calcule n5

para los numeros en las celdasA001 a A003 y lo guarde en la

misma celda

A001 0003A002 0001A003 0008

A001 00F3A002 0001A003 8000

Orga - UNQ Modularizacion y reuso de codigo

Page 22: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Hacer un programa que calcule n5

para los numeros en las celdasA001 a A003 y lo guarde en la

misma celda

A001 0003A002 0001A003 0008

A001 00F3A002 0001A003 8000

Orga - UNQ Modularizacion y reuso de codigo

Page 23: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Bosquejando el programa: ¿Que hay que hacer?

Copiar el contenido de A001 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A001

Copiar el contenido de A002 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A002

Copiar el contenido de A003 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A003

Orga - UNQ Modularizacion y reuso de codigo

Page 24: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Bosquejando el programa: ¿Que hay que hacer?

Copiar el contenido de A001 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A001

Copiar el contenido de A002 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A002

Copiar el contenido de A003 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A003

Orga - UNQ Modularizacion y reuso de codigo

Page 25: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Bosquejando el programa: ¿Que hay que hacer?

Copiar el contenido de A001 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A001

Copiar el contenido de A002 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A002

Copiar el contenido de A003 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A003

Orga - UNQ Modularizacion y reuso de codigo

Page 26: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 1

Bosquejando el programa: ¿Que hay que hacer?

Copiar el contenido de A001 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A001

Copiar el contenido de A002 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A002

Copiar el contenido de A003 a un registro

Multiplicarlo 4 veces por si mismo

Copiar el resultado a A003

Orga - UNQ Modularizacion y reuso de codigo

Page 27: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Desafıo de programacion numero 2

Hacer un programa que dados losnumeros (n) en las celdas 0001 a

0005 calcule

f (n) = (15 ∗ n + 4)/12− n/2

y lo guarde en las celdas 0006 a000A

0001 n10002 n20003 n30004 n40005 n50006 f (n1)0007 f (n2)0008 f (n3)0009 f (n4)000A f (n5)

Orga - UNQ Modularizacion y reuso de codigo

Page 28: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Rutinas

RutinaPrograma que resuelve un problema acotadoPuede ser usado en muchas ocasionesPermite modularizar y reusar codigoTambien se la llama subrutina (Es sub porque se la piensa paraser utilizada dentro de otro programa)

Orga - UNQ Modularizacion y reuso de codigo

Page 29: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Rutinas

RutinaPrograma que resuelve un problema acotadoPuede ser usado en muchas ocasionesPermite modularizar y reusar codigoTambien se la llama subrutina (Es sub porque se la piensa paraser utilizada dentro de otro programa)

Orga - UNQ Modularizacion y reuso de codigo

Page 30: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Rutinas

RutinaPrograma que resuelve un problema acotadoPuede ser usado en muchas ocasionesPermite modularizar y reusar codigoTambien se la llama subrutina (Es sub porque se la piensa paraser utilizada dentro de otro programa)

Orga - UNQ Modularizacion y reuso de codigo

Page 31: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Rutinas

RutinaPrograma que resuelve un problema acotadoPuede ser usado en muchas ocasionesPermite modularizar y reusar codigoTambien se la llama subrutina (Es sub porque se la piensa paraser utilizada dentro de otro programa)

Orga - UNQ Modularizacion y reuso de codigo

Page 32: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Orga - UNQ Modularizacion y reuso de codigo

Page 33: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

ModularizarDividir un problema grande en problemas mas pequenos

ProblemonProblemita 1

Problemita 2

Problemon

Orga - UNQ Modularizacion y reuso de codigo

Page 34: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

ModularizarDividir un problema grande en problemas mas pequenos

ProblemonProblemita 1

Problemita 2

Problemon

Orga - UNQ Modularizacion y reuso de codigo

Page 35: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Desafıo de programacion numero 1

Programa principal

Calcular potencia de A001

Calcular potencia de A002

Calcular potencia de A003

Orga - UNQ Modularizacion y reuso de codigo

Page 36: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Desafıo de programacion numero 1

Programa principal

Calcular potencia de A001

Calcular potencia de A002

Calcular potencia de A003

Orga - UNQ Modularizacion y reuso de codigo

Page 37: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Calcular potencia de A001

MOV R0, [A001] ; copiar valor originalMUL R0, [A001]MUL R0, [A001]MUL R0, [A001]MUL R0, [A001]MOV [A001],R0 ; mover resultado

Orga - UNQ Modularizacion y reuso de codigo

Page 38: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Calcular potencia de A002

MOV R0, [A002] ; copiar valor originalMUL R0, [A002]MUL R0, [A002]MUL R0, [A002]MUL R0, [A002]MOV [A002],R0 ; mover resultado

Orga - UNQ Modularizacion y reuso de codigo

Page 39: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion

Calcular potencia de A003

MOV R0, [A003] ; copiar valor originalMUL R0, [A003]MUL R0, [A003]MUL R0, [A003]MUL R0, [A003]MOV [A003],R0 ; mover resultado

Orga - UNQ Modularizacion y reuso de codigo

Page 40: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

¿Como se integran las partes?

Orga - UNQ Modularizacion y reuso de codigo

Page 41: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(1) Encapsular las subrutinas

delimitar el comienzo y el fin de la rutina

Orga - UNQ Modularizacion y reuso de codigo

Page 42: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(1) Encapsular las subrutinas

delimitar el comienzo y el fin de la rutina

Orga - UNQ Modularizacion y reuso de codigo

Page 43: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(1)Encapsular las subrutinas

potA001: MOV R0, [A001] ; etiqueta de comienzoMUL R0, [A001]MUL R0, [A001]MUL R0, [A001]MUL R0, [A001]MOV [A001],R0 ;RET ; fin de la rutina

Orga - UNQ Modularizacion y reuso de codigo

Page 44: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(1)Encapsular las subrutinas

potA002: MOV R0, [A002] ; etiqueta de comienzoMUL R0, [A002]MUL R0, [A002]MUL R0, [A002]MUL R0, [A002]MOV [A002],R0 ;RET ; fin de la rutina

Orga - UNQ Modularizacion y reuso de codigo

Page 45: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(1)Encapsular las subrutinas

potA003: MOV R0, [A003] ; etiqueta de comienzoMUL R0, [A003]MUL R0, [A003]MUL R0, [A003]MUL R0, [A003]MOV [A003],R0 ;RET ; fin de la rutina

Orga - UNQ Modularizacion y reuso de codigo

Page 46: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Integrar las partes

(2) Usar (llamar) las subrutinas

CALL potA001CALL potA002CALL potA003

Orga - UNQ Modularizacion y reuso de codigo

Page 47: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Modularizacion: CALL y RET

Instruccion CALLDesvıa el flujo del programa ala instruccion que define laetiqueta

Instruccion RETPermite restituir el flujo delprograma a la instruccionsiguiente del ultimo llamado

CALL potA001

CALL potA002

CALL potA003

potA001CALL

RET

CALL

RET

potA002

potA003

CALL

RET

Orga - UNQ Modularizacion y reuso de codigo

Page 48: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

¿Como puedo ahorrar trabajo?

Orga - UNQ Modularizacion y reuso de codigo

Page 49: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: parametros

¿Que hay en comun?

MOV R0,[A001]MUL R0,[A001]MUL R0,[A001]MUL R0,[A001]MUL R0,[A001]MOV[A001],R0RET

MOV R0,[A002]MUL R0,[A002]MUL R0,[A002]MUL R0,[A002]MUL R0,[A002]MOV[A002],R0RET

MOV R0,[A003]MUL R0,[A003]MUL R0,[A003]MUL R0,[A003]MUL R0,[A003]MOV[A003],R0RET

Orga - UNQ Modularizacion y reuso de codigo

Page 50: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: parametros

¿En que se diferencian?

MOV R0,[A001]MUL R0,[A001]MUL R0,[A001]MUL R0,[A001]MUL R0,[A001]MOV[A001],R0RET

MOV R0,[A002]MUL R0,[A002]MUL R0,[A002]MUL R0,[A002]MUL R0,[A002]MOV[A002],R0RET

MOV R0,[A003]MUL R0,[A003]MUL R0,[A003]MUL R0,[A003]MUL R0,[A003]MOV[A003],R0RET

Orga - UNQ Modularizacion y reuso de codigo

Page 51: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso

Orga - UNQ Modularizacion y reuso de codigo

Page 52: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso

ReusarEscribir subrutinas que puedan ser usadas en diferentessituaciones

Problema 1

Subrutina 1

Subrutina 2

Problema 2

Subrutina 1

Subrutina 3

Orga - UNQ Modularizacion y reuso de codigo

Page 53: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso

ReusarEscribir subrutinas que puedan ser usadas en diferentessituaciones

Problema 1

Subrutina 1

Subrutina 2

Problema 2

Subrutina 1

Subrutina 3

Orga - UNQ Modularizacion y reuso de codigo

Page 54: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Parametros

Orga - UNQ Modularizacion y reuso de codigo

Page 55: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: parametros

Parametros

potencia MOV R0,???MUL R0,???MUL R0,???MUL R0,???MUL R0,???MOV ???,R0RET

La rutina potencia es mas flexible

Orga - UNQ Modularizacion y reuso de codigo

Page 56: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: Ejercicio

Se cuenta con una rutina que aplica un descuento dado comoparametro, sobre una valor que tambien se pasa como parametro:

descontar: MOV R6, R3 ; valor originalMUL R6, R4 ; descuento a aplicarDIV R6, 0x0064 ; multiplicar por 100SUB R3, R6RET

Hacer un programa que aplique un 10% de descuento al valor en lacelda 6565, un 30% al valor en la celda AAAA y un 45% al valoren 0367.

Orga - UNQ Modularizacion y reuso de codigo

Page 57: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: Ejercicio

Se cuenta con una rutina que aplica un descuento dado comoparametro, sobre una valor que tambien se pasa como parametro:

descontar: MOV R6, R3 ; valor originalMUL R6, R4 ; descuento a aplicarDIV R6, 0x0064 ; multiplicar por 100SUB R3, R6RET

Hacer un programa que aplique un 10% de descuento al valor en lacelda 6565, un 30% al valor en la celda AAAA y un 45% al valoren 0367.

Orga - UNQ Modularizacion y reuso de codigo

Page 58: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Modularizacioncall y retReuso

Reuso: Ejercicio

Hacer un programa que aplique un 10% de descuento al valor en lacelda 6565, un 30% al valor en la celda AAAA y un 45% al valoren 0367.

MOV R3, [6565]MOV R4, 0x000A ; 10%CALL descontar;MOV R3, [AAAA]MOV R4, 0x001E ; 30%CALL descontar;MOV R3, [0367]MOV R4, 0x002D ;45%CALL descontar;

descontar: MOV R6, R3MUL R6, R4DIV R6, 0x0064SUB R3, R6RET

Orga - UNQ Modularizacion y reuso de codigo

Page 59: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Contratos

Orga - UNQ Modularizacion y reuso de codigo

Page 60: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio

En dos grupos

Equipo A Escribir una rutina que calcule el promedio de lasnotas de un alumno, asumiendo que las notas estanen R4 y R5. El resultado debe dejarse en R6.

Equipo B Escribir un programa que calcule el promedio de 4estudiantes de una comision, cuyas notas estan en lasceldas 0B00 a 0B07.

Orga - UNQ Modularizacion y reuso de codigo

Page 61: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Inconvenientes

¿Cual es el problema del codigo no documentado?

Para entender lo que hace una rutina se debe tratar decomprender el codigo

Es dificil detectar errores secundarios: Cuando la rutinamodifica algo no esperado

Es dificil modificar el codigo para nuevos requerimientos

Orga - UNQ Modularizacion y reuso de codigo

Page 62: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Contratos

¿Como documentar el codigo?

Especificar:

Requiere Que necesita la rutina (Parametros y precondiciones)

Retorna En que variable (registro o memoria) se retorna elresultado

Modifica Que variables auxiliares se utilizan (registros,memoria, flags)

Orga - UNQ Modularizacion y reuso de codigo

Page 63: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Contratos

¿Como documentar el codigo?

Especificar:

Requiere Que necesita la rutina (Parametros y precondiciones)¿Donde estan los parametros? (en que variables)¿Que caracterısticas deben tener? (distinto de 0, etc)

Retorna En que variable (registro o memoria) se retorna elresultado

Modifica Que variables auxiliares se utilizan (registros,memoria, flags)

Orga - UNQ Modularizacion y reuso de codigo

Page 64: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Contratos

¿Como documentar el codigo?

Especificar:

Requiere Que necesita la rutina (Parametros y precondiciones)

Retorna En que variable (registro o memoria) se retorna elresultado¿Que caracterısticas es importante marcar delresultado?

Modifica Que variables auxiliares se utilizan (registros,memoria, flags)

Orga - UNQ Modularizacion y reuso de codigo

Page 65: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Contratos

¿Como documentar el codigo?

Especificar:

Requiere Que necesita la rutina (Parametros y precondiciones)

Retorna En que variable (registro o memoria) se retorna elresultado

Modifica Que variables auxiliares se utilizan (registros,memoria, flags)¿Cambia alguna variable que no es el resultado?¿Cambian las variables que contienen parametros?

Orga - UNQ Modularizacion y reuso de codigo

Page 66: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina promedio

Requiere

Retorna

Modifica

Orga - UNQ Modularizacion y reuso de codigo

Page 67: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina promedio

Requiere Las notas estan en los registros R4 y R5. Los valoresestan en BSS(16)

Retorna El promedio en el registro R6, donde el promedioresulta de la division entera: (R4+R5)%2

Modifica nada

Orga - UNQ Modularizacion y reuso de codigo

Page 68: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina promedio

Requiere Las notas estan en los registros R4 y R5. Los valoresestan en BSS(16)

Retorna El promedio en el registro R6, donde el promedioresulta de la division entera: (R4+R5)%2

Modifica nada

Para documentar... ¿No es necesario haberlaimplementado??

Orga - UNQ Modularizacion y reuso de codigo

Page 69: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina promedio

Requiere Las notas estan en los registros R4 y R5. Los valoresestan en BSS(16)

Retorna El promedio en el registro R6, donde el promedioresulta de la division entera: (R4+R5)%2

Modifica nada

Ejercicio: usar la rutina promedio para calcular elpromedio de 4 estudiantes de una comision, cuyas

notas estan en las celdas 0B00 a 0B07, y ponga losresultados en las celdas 0B08 a 0B0B

Orga - UNQ Modularizacion y reuso de codigo

Page 70: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

MOV R4, [0B00]MOV R5, [0B01]CALL promedioMOV [0B08], R6MOV R4, [0B02]MOV R5, [0B03]CALL promedioMOV [0B09], R6MOV R4, [0B04]

MOV R5, [0B05]CALL promedioMOV [0B0A], R6MOV R4, [0B06]MOV R5, [0B07]CALL promedioMOV [0B0B], R6

Orga - UNQ Modularizacion y reuso de codigo

Page 71: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

MOV R4, [0B00]MOV R5, [0B01]CALL promedioMOV [0B08], R6MOV R4, [0B02]MOV R5, [0B03]CALL promedioMOV [0B09], R6MOV R4, [0B04]

MOV R5, [0B05]CALL promedioMOV [0B0A], R6MOV R4, [0B06]MOV R5, [0B07]CALL promedioMOV [0B0B], R6

Orga - UNQ Modularizacion y reuso de codigo

Page 72: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

MOV R4, [0B00] ←ParametroMOV R5, [0B01] ←ParametroCALL promedioMOV [0B08], R6MOV R4, [0B02] ←ParametroMOV R5, [0B03] ←ParametroCALL promedioMOV [0B09], R6MOV R4, [0B04] ←Parametro

MOV R5, [0B05] ←ParametroCALL promedioMOV [0B0A], R6MOV R4, [0B06] ←ParametroMOV R5, [0B07] ←ParametroCALL promedioMOV [0B0B], R6

Orga - UNQ Modularizacion y reuso de codigo

Page 73: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina potencia4

potencia4 MUL R0,R1MUL R0,R1MUL R0,R1MOV R2,R0RET

Requiere El valor a potenciar en R1

Retorna La potencia R14 en R2, queesta en el rango [0..216]

Modifica R0

Orga - UNQ Modularizacion y reuso de codigo

Page 74: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina potencia4

potencia4 MUL R0,R1MUL R0,R1MUL R0,R1MOV R2,R0RET

Requiere El valor a potenciar en R1

Retorna La potencia R14 en R2, queesta en el rango [0..216]

Modifica R0

Orga - UNQ Modularizacion y reuso de codigo

Page 75: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina descontar:

descontar: MOV R6, R3MUL R6, R4DIV R6, 0x0064SUB R3, R6RET

Requiere El valor original en R3

Retorna El valor con el descuento enR3

Modifica R6

Orga - UNQ Modularizacion y reuso de codigo

Page 76: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Ejercicio: documentar la rutina descontar:

descontar: MOV R6, R3MUL R6, R4DIV R6, 0x0064SUB R3, R6RET

Requiere El valor original en R3

Retorna El valor con el descuento enR3

Modifica R6

Orga - UNQ Modularizacion y reuso de codigo

Page 77: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

La Pila

Orga - UNQ Modularizacion y reuso de codigo

Page 78: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

¿Que es una pila?

La pila es una estructura para almacenar datos

Los datos se organizan apilados

Se utiliza mediante dos operaciones:

Apilar-push Cuando se escribe en la pila, se lo agrega”sobre” el ultimo agregado

Desapilar-pop Cuando se lee de la pila, se lo saca del ”tope”de la pila

Orga - UNQ Modularizacion y reuso de codigo

Page 79: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

¿Que es una pila?

La pila es una estructura para almacenar datos

Los datos se organizan apilados

Se utiliza mediante dos operaciones:

Apilar-push Cuando se escribe en la pila, se lo agrega”sobre” el ultimo agregado

Desapilar-pop Cuando se lee de la pila, se lo saca del ”tope”de la pila

Orga - UNQ Modularizacion y reuso de codigo

Page 80: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

¿Que es una pila?

La pila es una estructura para almacenar datos

Los datos se organizan apilados

Se utiliza mediante dos operaciones:

Apilar-push Cuando se escribe en la pila, se lo agrega”sobre” el ultimo agregado

Desapilar-pop Cuando se lee de la pila, se lo saca del ”tope”de la pila

Orga - UNQ Modularizacion y reuso de codigo

Page 81: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED ????FFEE ????FFEF ????

Orga - UNQ Modularizacion y reuso de codigo

Page 82: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

2 Apilar elemento: 0010. Tope de pilaen FFEE

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED ????FFEE ????FFEF 0010

Orga - UNQ Modularizacion y reuso de codigo

Page 83: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

2 Apilar elemento: 0010. Tope de pilaen FFEE

3 Apilar elemento: AAAA. Tope de pilaen FFED

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED ????FFEE AAAAFFEF 0010

Orga - UNQ Modularizacion y reuso de codigo

Page 84: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

2 Apilar elemento: 0010. Tope de pilaen FFEE

3 Apilar elemento: AAAA. Tope de pilaen FFED

4 Desapilar elemento. Tope de pila enFFEE

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED ????FFEE AAAAFFEF 0010

Orga - UNQ Modularizacion y reuso de codigo

Page 85: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

2 Apilar elemento: 0010. Tope de pilaen FFEE

3 Apilar elemento: AAAA. Tope de pilaen FFED

4 Desapilar elemento. Tope de pila enFFEE

5 Apilar elemento: 1111. Tope de pilaen FFED

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED ????FFEE 1111FFEF 0010

Orga - UNQ Modularizacion y reuso de codigo

Page 86: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Funcionamiento de la pila

1 Estado original: Tope de pila en FFEF

2 Apilar elemento: 0010. Tope de pilaen FFEE

3 Apilar elemento: AAAA. Tope de pilaen FFED

4 Desapilar elemento. Tope de pila enFFEE

5 Apilar elemento: 1111. Tope de pilaen FFED

6 Apilar elemento: BBBB. Tope de pilaen FFEC

...FFE9 ????FFEA ????FFEB ????FFEC ????FFED BBBBFFEE 1111FFEF 0010

Orga - UNQ Modularizacion y reuso de codigo

Page 87: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Implementacion de Pila

La pila es un sector especial de la memoria

El seguimiento del tope de pila se lleva mediante un registroespecial SP (Stack Pointer)

Orga - UNQ Modularizacion y reuso de codigo

Page 88: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Implementacion de Pila

Mem Ppal

FFFFSP

SP (Stack Pointer) contiene ladireccion de la primer celda dememoria disponible de la pila.

Orga - UNQ Modularizacion y reuso de codigo

Page 89: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Push

PushSe hace una escritura del dato que esta en el bus de datos en ladireccion que esta en SPSe decrementa SP (ası sigue cumpliendo la condicion)

Orga - UNQ Modularizacion y reuso de codigo

Page 90: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Push

PushSe hace una escritura del dato que esta en el bus de datos en ladireccion que esta en SPSe decrementa SP (ası sigue cumpliendo la condicion)

Orga - UNQ Modularizacion y reuso de codigo

Page 91: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Push

datos

direcciones

control

Mem Ppal

FFFF

CPU

UC

ALU

IR

SP

Flags

PC

FFFF

0101

FFFF

Escritura

Orga - UNQ Modularizacion y reuso de codigo

Page 92: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Push

datos

direcciones

control

Mem Ppal

FFFF

CPU

UC

ALU

IR

SP

Flags

PC

FFFE

0101

Orga - UNQ Modularizacion y reuso de codigo

Page 93: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Pop

PopSe incrementa SP (para que haga referencia a un dato dentro dela pila)Se hace una lectura de la direccion que esta en SP

Orga - UNQ Modularizacion y reuso de codigo

Page 94: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Pop

PopSe incrementa SP (para que haga referencia a un dato dentro dela pila)Se hace una lectura de la direccion que esta en SP

Orga - UNQ Modularizacion y reuso de codigo

Page 95: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Pop

datos

direcciones

control

Mem Ppal

FFFF

CPU

UC

ALU

IR

SP

Flags

PC

FFFA

FFFA

01010B08D001DAA122301111

Orga - UNQ Modularizacion y reuso de codigo

Page 96: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila: Pop

datos

direcciones

control

Mem Ppal

FFFF

CPU

UC

ALU

IR

SP

Flags

PC

FFFB

2230

FFFB

Lectura

01010B08D001DAA122301111

FFFB

Orga - UNQ Modularizacion y reuso de codigo

Page 97: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Estructura de Pila

El tamano y la ubicacion de la pila esta definido por laarquitectura.

El pop no blanquea el tope de la pila.

Cuando se hace push se pierde el valor que tenıa la celda (pordefinicion de escritura)

Orga - UNQ Modularizacion y reuso de codigo

Page 98: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL yRET?

Orga - UNQ Modularizacion y reuso de codigo

Page 99: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

CALL Desvıa el flujo del programa a la instruccion quedefine la etiqueta

RET Permite restituir el flujo del programa a la instruccionsiguiente del ultimo llamado

El ultimo llamado es el primero que se restituye

... me resulta conocido...

¡Se usa una pila!

Orga - UNQ Modularizacion y reuso de codigo

Page 100: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

El ultimo llamado es el primero que se restituye

... me resulta conocido...

¡Se usa una pila!

Orga - UNQ Modularizacion y reuso de codigo

Page 101: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

El ultimo llamado es el primero que se restituye

... me resulta conocido...

¡Se usa una pila!

Orga - UNQ Modularizacion y reuso de codigo

Page 102: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

CALL Apila la direccion de la siguiente instruccion

RET Desapila la direccion que habıa quedado pendienteen el programa que llamo.

Orga - UNQ Modularizacion y reuso de codigo

Page 103: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

Aja... ¿Y como se sabe la direccion siguiente?

¡Program Counter!

Orga - UNQ Modularizacion y reuso de codigo

Page 104: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

Aja... ¿Y como se sabe la direccion siguiente?

¡Program Counter!

Orga - UNQ Modularizacion y reuso de codigo

Page 105: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

¿Como funcionan CALL y RET?

CALL potA001

CALL potA002

CALL potA003

potA001CALL

RET

CALL

RET

potA002

potA003

CALL

RET

1 CALL potA001: se apila la direcciondel CALL potA002

2 RET: se desapila la direccion delCALL potA002

3 CALL potA002: se apila la direcciondel CALL potA003

4 RET: se desapila la direccion delCALL potA003

5 CALL potA001: se apila la direccionde la siguiente instruccion

Orga - UNQ Modularizacion y reuso de codigo

Page 106: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Ejercicio: mostrar como varıa la pila

rutinaA: MOV R0, R1CALL rutinaBRET

rutinaB: SUB R0, 0x0003RET

CALL rutinaA

Orga - UNQ Modularizacion y reuso de codigo

Page 107: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitecturas Q

Orga - UNQ Modularizacion y reuso de codigo

Page 108: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

... tercer acto ...

Orga - UNQ Modularizacion y reuso de codigo

Page 109: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3

Orga - UNQ Modularizacion y reuso de codigo

Page 110: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3

Q3

Q1

Q2

Orga - UNQ Modularizacion y reuso de codigo

Page 111: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3

Tiene 8 registros de uso general de 16 bits: R0..R7

Tiene direcciones de 16 bits

Tiene registros no visibles al programador:

Program counter de 16 bits.Stack Pointer de 16 bits. Comienza en la direccion FFEF.

permite 3 modos de direccionamiento:

modo registro: el valor buscado esta en un registromodo inmediato: el valor buscado esta codificado dentro de lainstruccionmodo directo: el valor buscado esta contenido en una celda dememoria

Orga - UNQ Modularizacion y reuso de codigo

Page 112: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3: formato de instrucciones

Instrucciones de 2 operandos (MUL,MOV,ADD,SUB,DIV)

Cod Op Modo Destino Modo Origen Operando Destino Operando Origen(4b) (6b) (6b) (16b) (16b)

Instrucciones con un operando Origen: CALLCod Op Relleno Modo Origen Operando Origen(4b) (000000) (6b) (16b)

Instrucciones sin operandos: RETCod Op Relleno(4b) (000000000000)

Orga - UNQ Modularizacion y reuso de codigo

Page 113: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3: Instrucciones Aritmeticas

Cod Op Modo Destino Modo Origen Operando Destino Operando Origen(4b) (6b) (6b) (16b) (16b)

Operacion CodOp

MUL 0000

MOV 0001

ADD 0010

SUB 0011

DIV 0111

Orga - UNQ Modularizacion y reuso de codigo

Page 114: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3: Instrucciones con un operando Origen

Cod Op Relleno Modo Origen Operando Origen(4b) (000000) (6b) (16b)

Operacion CodOp Efecto

CALL 1011 [SP] ← PC; SP ← SP - 1; PC ← Origen

Orga - UNQ Modularizacion y reuso de codigo

Page 115: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

Arquitectura Q3: Instrucciones sin operandos

Tipo 5: Instrucciones sin operandos

Cod Op Relleno(4b) (000000000000)

Operacion CodOp Efecto

RET 1100 SP ← SP + 1; PC ← [SP]

Orga - UNQ Modularizacion y reuso de codigo

Page 116: Universidad Nacional de Quilmes - orga.blog.unq.edu.ar

Ciclo de ejecucion revisadoRutinas

ContratosPila

Arquitectura Q3

Formato de las instrucciones

1 RutinasModularizacioncall y retReuso

2 Contratos

3 Pila

4 Arquitectura Q3

Orga - UNQ Modularizacion y reuso de codigo