ABI Application Binary Interface. Ejemplo en C (by Hernán Perez) void proc(int i); int main(int argc, char** argv) { int i=10; proc(i); return 0; } void.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURA DE DATOS Unidad 01 Conceptos Previos.
Advertisements

Curso de java básico (scjp)
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
Ejemplo de Programa C++
Funciones y recursividad
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Programacion de Computadora Prof. Obadiah Oghoerore.
Funciones. Programación, Algoritmos y Estructuras de Datos.
66.20 Organización de Computadoras
CLASE 12.
INFORMATICA I Funciones CLASE 13.
Datapath DLX.
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
Programación Estructurada
Algoritmos y Estructuras de Datos
SOBRECARGA DE FUNCIONES
17/09/2014Catedra de Programacion I1 Programación I Funciones.
Arreglos: Vectores en JAVA
Simulación de la recursión Estructuras de datos. Llamada y regreso de una función Al llamar a una función se realizan los siguientes tres pasos: 1. Transferencia.
Funciones y procedimientos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Material de apoyo Unidad 2 Estructura de datos
Java Mayra M. Méndez Anota.
Unidad I Java y C++ : Similitudes y diferencias
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Asignatura: Lenguaje de Programación de Sistemas PPT No.05 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya.
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
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.
MIPS Intermedio.
Semana 5 Subprogramas..
Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Programación III Clase 07 Funciones.
STACK BUFFERS OVERFLOWS. Linux con nucleos 2.4 & 2.6 en arquitectura i386 y compatibles. strcpy(); ANSI C (string.h) David Reguera García.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Docente: Carlos Orlando Claros Vásquez UNSACA - HUACHO FACULTAD DE INGENIERIA Módulo: Generación de Código No Optimizado.
3.  Recursividad.
Programación I Teoría VIII: Entrada/Salida
Introducción al Minikernel
Aplicado a programas openMP
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Ejemplos openMP.
Programación de Memoria Compartida
Introducción a los punteros Prof. Domingo Hernández.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Informática Ingeniería en Electrónica y Automática Industrial
Laboratorio Análisis y Diseño de Algoritmos 2 Biblioteca estándar de templates de C++ Standard Template Library (STL)‏ Motivación Ejemplo: Lista + Iterador.
Bibliotecas Nacen a partir de la necesidad de la compilación por módulos. Lo cual consiste en separar el programa principal de aquellas funciones que se.
Un Programa para Crear un Archivo con una Matríz mXn de enteros dados * #include /******************************************************************************/
Trazado. 1 Intercambio sin error #include void intercambio(int *, int *); /* prototipo */ main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b);
1 LAS CLASES EN C++ PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
C# desde cero.
Radio Volumen esfera m. m #include.
Modularización (Funciones) Prof. Miguel Vélez Rubio.
Clase 1 Gabriela Araya Baez.. Char: Variable que almacena caracteres. Int: Variable que almacena enteros. Float: Variable que almacena decimales. Doble:
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
MIPS Intermedio.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
El lenguaje de Programación C Fernando J. Pereda.
Lenguaje ensamblador MIPS
Entrada / Salida Streams Archivos
Programación en C - manejo de Archivos
FUNCIONES Y PROCEDIMIENTOS
Message Passing Interface
Puntero #include int main(int argc, char *argv[]) { int myVar = 378; printf("El valor de la variable es: %d\n", myVar); printf("Dirección de memoria de.
Transcripción de la presentación:

ABI Application Binary Interface

Ejemplo en C (by Hernán Perez) void proc(int i); int main(int argc, char** argv) { int i=10; proc(i); return 0; } void proc(int i) { int j; j = i+20; }

Main:.text.globl main main: subu $sp,$sp,48 # stack sw $ra,40($sp) # (almacena i y argumentos de main) sw $fp,36($sp) sw $gp,32($sp) move $fp,$sp sw $a0,48($fp) # el callee (main) almacena sus args sw $a1,52($fp) # fuera del stack frame (pegados a el) li $v0,10 # i = 10; sw $v0,24($fp) lw $a0,24($fp) # proc(i); la $t9,proc jal $ra,$t9 move $v0,$zero # return 0; move $sp,$fp # destruye stack frame lw $ra,40($sp) lw $fp,36($sp) addu $sp,$sp,48 j $ra

Proc:.globl proc proc: subu $sp,$sp,24 # crea stack frame sw $fp,20($sp) # necesita almacenar j sw $gp,16($sp) move $fp,$sp sw $a0,24($fp) # callee (main) almacena argumento # fuera del stack frame lw $v0,24($fp) # j = i + 20 addu $v0,$v0,20 sw $v0,8($fp) # (j -> 8($fp)) move $sp,$fp # destruye stack frame lw $fp,20($sp) addu $sp,$sp,24 j $ra

Diagrama de Stack