Arquitectura de Computadores Clase 13 Subrutinas y Manejo de Stack IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.

Slides:



Advertisements
Presentaciones similares
El modelo de Von Neumann
Advertisements

UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Arquitectura de Computadores I
Composición Interna de un Procesador
SEMANA 05_2.
ISA (Instruction Set Architecture)
MODOS DE DIRECCIONAMIENTO
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Unidad 2: Organización del CPU
Introducción a la Ingeniería en Sistemas
1 LENGUAJES LOGICOS IMPLEMENTACION CALCULO DE PREDICADOS PROLOG.
Arquitectura de Computadores
Secciones y Segmentos STARTUP
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
ARQUITECTURA DE COMPUTADORESTABLA DE SABERESVersión Final DESCRIBIR EL SOFTWARE DE BAJO NIVEL NOMBRAR LAS CARACTERÍSTICAS DEL LENGUAJE ENSAMBLADOR Saber.
ARQUICTECTURA DE SERVIDORES
introducción al Lenguaje Ensamblador
Maquinas Digitales UNIDADES DE CONTROL.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
Aprende el arte de la ingeniería inversa
Estructura funcional (Von Neumann)
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Arquitectura de PCs El BIOS. Introducción Un PC tiene parámetros específicos para el acceso a dispositivos periféricos: por ejemplo, acceso a disco duro.
Arquitectura de Computadores Clase 6 Ciclo y Conjunto de Instrucciones IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores Clase 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de Computadores Clase 12 Instrucciones en lenguaje de máquina IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile.
Arquitectura de Computadores Clase 0 Presentación del Curso IIC 2342 Semestre José Tomás Eterović Pontificia Universidad Católica de Chile Escuela.
ARQUITECTURA DE COMPUTADORES ESCUELA: NOMBRES: Escuela de Ciencias de la Computación Ing. Greyson Alberca P. BIMESTRE: Primero.
Arquitectura de Computadores Clases 7-10 Diseño de una CPU Básica IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
NOMBRE: ERICK ANTONIO MATA BARBALENA PROF: ING. LEONOR FALCON MATERIA: MICROPORCESADORES TURNO VESPERTINO 27/04/2017.
Organización de computadoras
ARQUITECTURA BÁSICA DE UN ORDENADOR
Clase n º 4 Introducción a Matlab
El procesador Diseño del control.
Pipelining Datapath y control.
Datapath para las instrucciones aritméticas y lógicas
Datapath para las instrucciones de brinco
EL CPU.
Arquitecturas alternativas UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNICIONES ADMINISTRACION DE SERVIDORES.
QUE ES EL HARDWARE El Hardware son todos aquellos componentes físicos de una computadora, todo lo visible y tangible. El Hardware realiza las 4 actividades.
Excepciones e interrupciones
Datapath para las instrucciones de carga y almacenamiento (load/store)
Tema 2. Resolución de Problemas
Clase 7 Assembly - Simulador MSX88.
Explicación 3 Periféricos.
Manejador de interrupción (subrutina)
Arquitectura 2013 Explicación 5 Parte II.
Clase 6 Assembly - Simulador MSX88 Subrutinas.
Arquitectura 2014 Explicación 1.
Almacenamiento El computador tiene 2 aspectos
PICOBLAZE RESUMEN.
Explicación 2 Interrupciones.
Introducción a las ciencias de la computación Antonio López Jaimes
8. Diseño del Procesador Fundamentos de los Computadores
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Introducción a las bases de datos (I)
INGENIERÍA DE SOFTWARE CAPITULO I ANALISIS DE REQUISITOS Por:
Arquitectura de Computadores de Computadores. Organización y Arquitectura La Arquitectura: se refiere a los atributos que tienen un impacto directo en.
El procesador Datapath y control.
Introducción a la computadora Prof. Yolanda I. López de Jesús GEIC 1000.
Universidad Técnica De Manabí Facultad De Ciencias Informáticas Departamento De Informática Y Electrónica Trabajo de investigación grupal Tema: Arquitectura.
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

Arquitectura de Computadores Clase 13 Subrutinas y Manejo de Stack IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Objetivos Capítulo 4 : Unidad de Procesamiento Central (CPU) Entender cómo se implementan las funciones de alto nivel como subrutinas en bajo nivel. Entender la lógica del paso de parámetros, retorno de resultados, y almacenamiento de direcciones de retorno en subrutinas. Objetivos R.Mitnik 2Arquitectura de Computadores

R.Mitnik Arquitectura de Computadores3 Índice Capítulo 4 : Unidad de Procesamiento Central (CPU) 4.1 Partes de la CPU. 4.2 Conjunto de Instrucciones y tipos de funcionalidad. 4.3 Ciclo de la Instrucción. 4.4 Diseño de una CPU básica. 4.5 Modos de direccionamiento. 4.6 Instrucciones en lenguaje de máquina. 4.7 Subrutinas y Manejo de Stack. 4.8 Interrupciones de software y hadware. 4.9 CISC/RISC.

Subrutinas Trozos de código con funcionalidad predeterminada R.Mitnik Arquitectura de Computadores4 ¿Cómo implementamos funciones a bajo nivel? ¿ Cómo implementamos funciones a bajo nivel? R.Mitnik 4Arquitectura de Computadores Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack Subrutinas

R.Mitnik Arquitectura de Computadores5 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack

R.Mitnik Arquitectura de Computadores6 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack

Inicio subrutina Salida de subrutina Datos y resultado Instrucciones Codigo de implementación: Precauciones Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack ¿Qué pasa si el programa principal estaba utilizando el registro Ac? kaput!! Solución: Se usa el Stack (pila) Push Ac // guarda Ac en la pila LDA zero … Pop Ac // recupera el valor de Ac de la pila RTS

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores8 Subrutinas Requisitos de una función Código de su implementación Kaput! Dirección de retorno Parámetros Retornar resultados

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores9 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores10 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Registros Stack Parámetros Retornar resultados

R.Mitnik Arquitectura de Computadores11 Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Dirección de retorno Al llamar a una subrutina se carga un registro con la dirección de retorno de ésta. Al retornar, carga el Program Counter (o Instruction Pointer) con el valor de dicho registro. Desventajas Se dificulta la anidación de subrutinas Se dificulta la implementación de funciones recursivas Pierdo utilización de un registro Ventajas Simpleza Registros

R.Mitnik Arquitectura de Computadores12 Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Al llamar a una subrutina hago PUSH del valor del Program Counter (o Instruction Pointer) Al retornar, hace POP del valor almacenado cargándolo de vuelta en el Program Counter. Desventajas Requiere manejar el stack Ventajas Anidación de subrutinas (incluso recursivas) se logra de manera transparente. Stack Dirección de retorno

R.Mitnik Arquitectura de Computadores13 F3h F4h F5h F6h F7h F8h F9h FAh FBh FCh FDh### FEh### FFh### Stack Dirección de retorno por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Stack Pointer Program Counter A0h A1h A2h A3hCALL SUB A4hNext Instr. A5h A6h A7h A4h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Qué ocurre al llamar una subrutina?

R.Mitnik Arquitectura de Computadores14 F3h F4h F5h F6h F7h F8h F9h FAh FBh FChA4h FDh### FEh### FFh### Stack Dirección de retorno por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Stack Pointer Program Counter A0h A1h A2h A3hCALL SUB A4hNext Instr. A5h A6h A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Qué ocurre al volver de una subrutina?

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores15 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores16 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Registros Stack Retornar resultados

R.Mitnik Arquitectura de Computadores17 Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Paso de parámetros Antes de llamar a subrutina cargo registros con los parámetros Debo conocer que registros ocupa la subrutina La subrutina lee los registros Desventajas Número limitado de registros Ventajas Rapidez Simpleza Registros

R.Mitnik Arquitectura de Computadores18 Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Paso de parámetros Antes de llamar a subrutina hago PUSH de los parámetros Debo saber en que orden mandarlos Desventajas Complejo Requiere mayor coordinación Ventajas Mayor espacio Stack

R.Mitnik Arquitectura de Computadores19 F3h F4h F5h F6h F7h F8h F9h FAh FBh FCh FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Stack Pointer Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h A C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo paso los parámetros a una subrutina? B A4h ¿Cómo accedo a los parámetros en la subrutina? No puedo usar “POP”  Hay que direccionar Ej: (SP+2) obtengo B (SP+3) obtengo A

¿Qué pasa si hago otros PUSH en la subrutina? R.Mitnik Arquitectura de Computadores20 F3h F4h F5h F6h F7h F8h F9h FAhA4h FBhB FChA FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo paso los parámetros a una subrutina? Cambia el direccionamiento Ej: (SP+4) obtengo B (SP+5) obtengo A dato Stack Pointer

¿Qué pasa si en la subrutina hago if(condición) PUSH;? R.Mitnik Arquitectura de Computadores21 F3h F4h F5h F6h F7h F8hdato F9hdato FAhA4h FBhB FChA FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo paso los parámetros a una subrutina? Perdí el direccionamiento Ej: (SP+???) obtengo B (SP+???) obtengo A Stack Pointer Usamos otro puntero  Base Pointer (registro)

R.Mitnik Arquitectura de Computadores22 F3h F4h F5h F6h F7hdato F8hdato F9hFFh FAhA4h FBhB FChA FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo paso los parámetros a una subrutina? Stack Pointer Base Pointer Direccionamos por BP Ej: (BP+2) obtengo B (BP+3) obtengo A Frame (marco) de la subrutina actual Frame (marco) de la subrutina anterior

R.Mitnik Arquitectura de Computadores23 F3h F4h F5h F6h F7h F8h F9h FAh FBh FCh FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Stack Pointer Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h A C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo paso los parámetros a una subrutina? B A4h Base Pointer FFh

R.Mitnik Arquitectura de Computadores24 F3h F4h F5h F6h F7hdato F8hdato F9hFFh FAhA4h FBhB FChA FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo retorno de la subrutina? Stack Pointer Base Pointer SP = BP-1 POP BP // BP = (SP) POP PC // PC = (SP)

R.Mitnik Arquitectura de Computadores25 F3h F4h F5h F6h F7h F8h F9h FAh FBh FCh FDh### FEh### FFh### Stack Paso de parámetros por Stack Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas Program Counter A0h A1hPUSH A A2hPUSH B A3hCALL SUB A4hPOP A5hPOP A6hNext Instr. A7h C2hSubroutine C3hCode C4h… C5h… C6hReturn ¿Cómo retorno de la subrutina? Stack Pointer Base Pointer SP = BP-1 POP BP // BP = (SP) POP PC // PC = (SP)

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores26 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores27 Subrutinas Requisitos de una función Código de su implementación Dirección de retorno Parámetros Retornar resultados Registros

Capítulo 4 : Unidad de Procesamiento Central (CPU) – Subrutinas y manejo del Stack R.Mitnik Arquitectura de Computadores28 Subrutinas Requisitos de una función Código de su implementación Kaput! Dirección de retorno Registros Stack Parámetros Registros Stack Retornar resultados Registros

Resumen Capítulo 4 : Unidad de Procesamiento Central (CPU) Implementación de funciones como subrutinas Código de su implementación Precauciones Dirección de retorno Registros Stack Parámetros Registros Stack Retornar resultados Registros R.Mitnik 29Arquitectura de Computadores Resumen