Ensamblador x86: lazos y procedimientos
|
|
- Enrique Aguilar Peña
- hace 8 años
- Vistas:
Transcripción
1 Ensamblador x86: lazos y procedimientos Lección 5 Ing. Jorge Castro-Godínez MT7003 Microprocesadores y Microcontroladores Área de Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica I Semestre 2014 Jorge Castro-Godínez Ensamblador x86 1 / 52
2 Contenido 1 Lazos o ciclos 2 Jorge Castro-Godínez Ensamblador x86 2 / 52
3 Transformación de lazos o ciclos Cómo transformar lazos de una forma directa? Estar seguro de dónde debe estar (u ocurrir) el salto condicional: al tope o al fondo del lazo. Cómo sería implementar for(i=0;i<100;i++? while ( sum!= 0 ) { <loop body> } looptop: cmpl $0, %eax je loopdone <loop body code> jmp looptop loopdone: Jorge Castro-Godínez Ensamblador x86 3 / 52
4 Lazo do-while Se emplea un salto hacia atrás para continuar con el lazo. Solo toma un salto cuando la condición del while se conserva. int fact_do(int x) { int result = 1; do { result *= x; x = x-1; } while (x > 1); return result; } int fact_goto(int x) { int result = 1; loop: result *= x; x = x-1; if (x > 1) goto loop; return result; } Jorge Castro-Godínez Ensamblador x86 4 / 52
5 Compilación de lazo do-while int fact_goto(int x) { int result = 1; loop: result *= x; x = x-1; if (x > 1) goto loop; %edx x %eax result fact_goto: pushl %ebp # Setup movl,%ebp # Setup movl $1,%eax # eax = 1 movl 8(%ebp),%edx # edx = x.l11: imull %edx,%eax # result *= x decl %edx # x-- cmpl $1,%edx # Compare x : 1 jg.l11 # if > goto loop } return result; movl %ebp, # Finish popl %ebp # Finish ret # Finish Jorge Castro-Godínez Ensamblador x86 5 / 52
6 Traducción del lazo do-while do while ( ); loop: if ( ) goto loop Jorge Castro-Godínez Ensamblador x86 6 / 52
7 Traducción del lazo while int fact_while(int x) { int result = 1; while (x > 1) { result *= x; x = x-1; }; return result; } int fact_while_goto(int x) { int result = 1; goto middle; loop: result *= x; x = x-1; middle: if (x > 1) goto loop; return result; } Jorge Castro-Godínez Ensamblador x86 7 / 52
8 Ejemplo del lazo while int fact_while(int x) { int result = 1; while (x > 1) { result *= x; x--; }; return result; } # x in %edx, result in %eax jmp.l34 # goto Middle.L35: # Loop: imull %edx, %eax # result *= x decl %edx # x--.l34: # Middle: cmpl $1, %edx # x:1 jg.l35 # if >, goto # Loop Jorge Castro-Godínez Ensamblador x86 8 / 52
9 Ciclo for (1) /* Compute x raised to nonnegative power p */ int ipwr_for(int x, unsigned int p) { int result; for (result = 1; p!= 0; p = p>>1) { if (p & 0x1) result *= x; x = x*x; } return result; } Jorge Castro-Godínez Ensamblador x86 9 / 52
10 Ciclo for /* Compute x raised to nonnegative power p */ int ipwr_for(int x, unsigned int p) { int result; for (result = 1; p!= 0; p = p>>1) { if (p & 0x1) result *= x; x = x*x; } return result; } (2) result x=3 p= = = = = Jorge Castro-Godínez Ensamblador x86 10 / 52
11 Componentes en el ciclo for int result; for (result = 1; p!= 0; p = p>>1) { if (p & 0x1) result *= x; x = x*x; } for ( ; ; ) result = 1 p!= 0 p = p >> 1 { } if (p & 0x1) result *= x; x = x*x; Jorge Castro-Godínez Ensamblador x86 11 / 52
12 De for a while for ( ; ; ) ; while ( ) { ; } ; goto middle; loop: ; middle: if ( ) goto loop; done: Jorge Castro-Godínez Ensamblador x86 12 / 52
13 De for a while for ( ; ; ) for (result = 1; p!= 0; p = p>>1) { if (p & 0x1) result *= x; x = x*x; } ; goto middle; loop: ; middle: if ( ) goto loop; done: result = 1; goto middle; loop: if (p & 0x1) result *= x; x = x*x; p = p >> 1; middle: if (p!= 0) goto loop; done: Jorge Castro-Godínez Ensamblador x86 13 / 52
14 Disposición de la memoria (1) 2 N -1 Stack local variables; procedure context Dynamic Data (Heap) Static Data variables allocated with new or malloc static variables (including global variables (C)) Literals literals (e.g., example ) 0 Instructions Jorge Castro-Godínez Ensamblador x86 14 / 52
15 Disposición de la memoria (2) writable; not executable Stack Managed automatically (by compiler) writable; not executable Dynamic Data (Heap) Managed by programmer writable; not executable Static Data Initialized when process starts Read-only; not executable Literals Initialized when process starts Read-only; executable Instructions Initialized when process starts Jorge Castro-Godínez Ensamblador x86 15 / 52
16 Pila en IA32 Lazos o ciclos Región de memoria manejada al estilo de una pila. Crece hacia direcciones de memoria menores (es una convención). El registros contiene la dirección más baja de la pila, i.e., el elemento que se encuentra en la dirección al tope de la pila, el último elementos que se colocó en la pila. Jorge Castro-Godínez Ensamblador x86 16 / 52
17 Pila en IA32 Lazos o ciclos Stack Bottom Increasing Addresses Stack Pointer: Stack Grows Down Stack Top Jorge Castro-Godínez Ensamblador x86 17 / 52
18 Push (1) pushl src Stack Bottom Increasing Addresses Stack Pointer: Stack Grows Down Stack Top Jorge Castro-Godínez Ensamblador x86 18 / 52
19 Push (2) pushl src Se toma el valor de src, se decrementa en cuatro, el dato se almacena en la direcciónq ue indica. IA32 Call Stack: Push Stack Bottom Increasing Addresses Stack Pointer: -4 Stack Grows Down Stack Top Jorge Castro-Godínez Ensamblador x86 19 / 52
20 Pop (1) popl dest Stack Bottom Increasing Addresses Stack Pointer: Stack Grows Down Stack Top Jorge Castro-Godínez Ensamblador x86 20 / 52
21 Pop (2) popl dest Se carga el valor apuntado por, se escribe en dest, se incrementa en 4. Stack Bottom Increasing Addresses Stack Pointer: +4 Stack Grows Down Stack Top Jorge Castro-Godínez Ensamblador x86 21 / 52
22 Llamadas a procedimientos (1) Callee debe saber donde encontrar los argumentos Callee debe saber donde encontrar a dirección de retorno Caller debe saber donde encontrar el valor de retorno Caller y Callee se ejecutan en el mismo procesador y, por ende, comparten los mismos registros Caller debe salvar los valores de los registros que Callee pueda usar Callee debe salvar los valores de los registros que Caller haya usado Caller <set up args> call <clean up args> <find return val> Callee <create local vars> <set up return val> <destroy local vars> return Jorge Castro-Godínez Ensamblador x86 22 / 52
23 Llamadas a procedimientos (2) La convención que permite establecer donde colocar o encontrar valores (de registros, valores de retorno) es llamadado procedure call linkage Detalles pueden variar dependiendo del sistema. Caller <save regs> <set up args> call <clean up args> <restore regs> <find return val> Callee <save regs> <create local vars> <set up return val> <destroy local vars> <restore regs> return Jorge Castro-Godínez Ensamblador x86 23 / 52
24 Control de flujo en procedimientos Llamada al procedimiento: call label Hace un push de la dirección de retorno en la pila Salta al label Retorno del procedimiento: ret Hace un pop de la dirección de retorno que se encuentra en la pila Salta a la dirección Dirección de retorno Dirección de la instrucción que se encuentra después del call Ejemplo de instrucciones desensambladas Example from disassembly: e: e8 3d call 8048b90 <main> : 50 pushl %eax 0x Jorge Castro-Godínez Ensamblador x86 24 / 52
25 Ejemplo: llamada de procedimiento (1) e: e8 3d call 8048b90 <main> : 50 pushl %eax call 8048b90 0x110 0x10c 0x x108 %eip 0x804854e Jorge Castro-Godínez Ensamblador x86 25 / 52
26 Ejemplo: llamada de procedimiento (2) e: e8 3d call 8048b90 <main> : 50 pushl %eax call 8048b90 0x110 0x110 0x10c 0x10c 0x x x104 0x108 0x108 %eip 0x804854e %eip 0x804854e Jorge Castro-Godínez Ensamblador x86 26 / 52
27 Ejemplo: llamada de procedimiento (3) e: e8 3d call 8048b90 <main> : 50 pushl %eax call 8048b90 0x110 0x110 0x10c 0x10c 0x x x104 0x108 0x108 %eip 0x804854e %eip 0x804854e 0x Jorge Castro-Godínez Ensamblador x86 27 / 52
28 Ejemplo: llamada de procedimiento (4) e: e8 3d call 8048b90 <main> : 50 pushl %eax call 8048b90 0x110 0x110 0x10c 0x10c 0x x x104 0x x108 0x108 0x104 %eip 0x804854e %eip 0x804854e 0x Jorge Castro-Godínez Ensamblador x86 28 / 52
29 Ejemplo: llamada de procedimiento (5) e: e8 3d call 8048b90 <main> : 50 pushl %eax call 8048b90 0x110 0x110 0x10c 0x10c 0x x x104 0x x108 0x108 0x104 %eip 0x804854e %eip 0x x000063d 0x8048b90 Jorge Castro-Godínez Ensamblador x86 29 / 52
30 Ejemplo: retorno de procedimiento (1) : c3 ret ret 0x110 0x10c 0x108 0x x %eip 0x104 0x Jorge Castro-Godínez Ensamblador x86 30 / 52
31 Ejemplo: retorno de procedimiento (2) : c3 ret ret 0x110 0x10c 0x108 0x104 0x110 0x10c 123 0x108 0x x x104 0x104 %eip 0x %eip 0x Jorge Castro-Godínez Ensamblador x86 31 / 52
32 Ejemplo: retorno de procedimiento (3) : c3 ret ret 0x110 0x10c 0x108 0x104 0x110 0x10c 123 0x108 0x x x104 0x104 %eip 0x %eip 0x x Jorge Castro-Godínez Ensamblador x86 32 / 52
33 Ejemplo: retorno de procedimiento (4) : c3 ret ret 0x110 0x10c 0x108 0x104 0x110 0x10c 123 0x108 0x x x104 0x104 0x108 %eip 0x %eip 0x x Jorge Castro-Godínez Ensamblador x86 33 / 52
34 Valores retornados por procedimientos Por convención, los valores retornados por procedimientos son colocado en %eax Caller debe asegurarse de salvar los valores de los registros antes de llamar un Callee que devuelva un valor Callee coloca el valor de retorno (entero, flotante, puntero) Después del retorno, el Caller encuentra el valor devuelto en el registro %eax Jorge Castro-Godínez Ensamblador x86 34 / 52
35 Linux Stack Frame Lazos o ciclos Frame pointer %ebp Caller Frame Arguments Return Addr Old %ebp Stack pointer Saved Registers + Local Variables Argument Build Jorge Castro-Godínez Ensamblador x86 35 / 52
36 Función de swap swap int zip1 = 15213; int zip2 = 98195; void call_swap() { swap(&zip1, &zip2); } Lazos o ciclos Calling swap from call_swap call_swap: pushl $zip2 # Global Var pushl $zip1 # Global Var call swap (1) void swap(int *xp, int *yp) { int t0 = *xp; int t1 = *yp; *xp = t1; *yp = t0; } &zip2 &zip1 Rtn adr Resulting Stack Jorge Castro-Godínez Ensamblador x86 36 / 52
37 Función de swap Lazos o ciclos (2) void swap(int *xp, int *yp) { int t0 = *xp; int t1 = *yp; *xp = t1; *yp = t0; } swap: pushl %ebp movl,%ebp pushl %ebx movl 12(%ebp),%ecx movl 8(%ebp),%edx movl (%ecx),%eax movl (%edx),%ebx movl %eax,(%edx) movl %ebx,(%ecx) movl -4(%ebp),%ebx movl %ebp, popl %ebp ret Set Up Body Finish Jorge Castro-Godínez Ensamblador x86 37 / 52
38 swap setup Lazos o ciclos (1) Entering Stack Resulting Stack %ebp %ebp &zip2 yp &zip1 Rtn adr xp Rtn adr Old %ebp swap: pushl %ebp movl,%ebp pushl %ebx Jorge Castro-Godínez Ensamblador x86 38 / 52
39 swap setup Lazos o ciclos (2) Entering Stack Resulting Stack %ebp &zip2 yp &zip1 Rtn adr xp Rtn adr Old %ebp %ebp swap: pushl %ebp movl,%ebp pushl %ebx Jorge Castro-Godínez Ensamblador x86 39 / 52
40 swap setup Lazos o ciclos (3) Entering Stack Resulting Stack %ebp &zip2 &zip1 Rtn adr swap: pushl %ebp movl,%ebp pushl %ebx yp xp Rtn adr Old %ebp Old %ebx %ebp Jorge Castro-Godínez Ensamblador x86 40 / 52
41 swap body Lazos o ciclos Entering Stack Resulting Stack &zip2 &zip1 Rtn adr %ebp Offset relative to new %ebp yp xp Rtn adr Old %ebp %ebp Old %ebx movl 12(%ebp),%ecx # get yp movl 8(%ebp),%edx # get xp... Jorge Castro-Godínez Ensamblador x86 41 / 52
42 swap finish Lazos o ciclos (1) swap s Stack Resulting Stack yp yp xp xp Rtn adr Old %ebp %ebp Rtn adr Old %ebp %ebp Old %ebx Old %ebx movl -4(%ebp),%ebx movl %ebp, popl %ebp ret Jorge Castro-Godínez Ensamblador x86 42 / 52
43 swap finish Lazos o ciclos (2) swap s Stack Resulting Stack yp yp xp xp Rtn adr Old %ebp Old %ebx %ebp Rtn adr Old %ebp %ebp movl -4(%ebp),%ebx movl %ebp, popl %ebp ret Linux Stack Frame Jorge Castro-Godínez Ensamblador x86 43 / 52
44 swap finish Lazos o ciclos (3) swap s Stack Resulting Stack %ebp yp yp xp xp Rtn adr Old %ebp %ebp Rtn adr Old %ebx movl -4(%ebp),%ebx movl %ebp, popl %ebp ret Jorge Castro-Godínez Ensamblador x86 44 / 52
45 swap finish Lazos o ciclos (4) swap s Stack Resulting Stack %ebp yp yp xp xp Rtn adr Old %ebp %ebp Old %ebx movl -4(%ebp),%ebx movl %ebp, popl %ebp ret Jorge Castro-Godínez Ensamblador x86 45 / 52
46 swap desensamblado Lazos o ciclos a4 <swap>: 80483a4: 55 push %ebp 80483a5: 89 e5 mov,%ebp 80483a7: 53 push %ebx 80483a8: 8b mov 0x8(%ebp),%edx 80483ab: 8b 4d 0c mov 0xc(%ebp),%ecx 80483ae: 8b 1a mov (%edx),%ebx 80483b0: 8b 01 mov (%ecx),%eax 80483b2: mov %eax,(%edx) 80483b4: mov %ebx,(%ecx) 80483b6: 5b pop %ebx 80483b7: c9 leave 80483b8: c3 ret Calling Code mov %ebp, pop %ebp : e8 96 ff ff ff call 80483a4 <swap> e: 8b 45 f8 mov 0xfffffff8(%ebp),%eax Jorge Castro-Godínez Ensamblador x86 46 / 52
47 Convenciones para salvar registros Cuando yoo invoca a who: yoo es el caller who es el callee En este caso %edx seía sobreescrito por who Can a register be used for temporary storage? yoo: movl $12345, %edx call who addl %edx, %eax ret %edx who: movl 8(%ebp), %edx addl $98195, %edx ret who Jorge Castro-Godínez Ensamblador x86 47 / 52
48 Convenciones para salvar registros Convenciones Caller salva los valores temporales en su frame antes de llamar a otro procedimiento Callee salva los valores temporales en su frame antes de utilizar los registros. Jorge Castro-Godínez Ensamblador x86 48 / 52
49 Uso de registros en Linux %eax, %edx, %ecx: son salvador por el caller antes de llamar a un procedimiento, si es que dichos valores se desean usar posteriormente. %eax: utilizado por defecto para almacenar los valores de retorno de las funciones. %ebx, %esi, %edi: el callee debe guardar los valores si desea usarlos., %ebp: presentan una forma especial de guardarse, lo realiza el callee. Debe restaurar los valores originales que recibe antes de salir. Jorge Castro-Godínez Ensamblador x86 49 / 52
50 Uso de registros en Linux Caller-Save Temporaries Callee-Save Temporaries Special %eax %edx %ecx %ebx %esi %edi %ebp Jorge Castro-Godínez Ensamblador x86 50 / 52
51 Punteros a valores locales Recursive Procedure void s_helper (int x, int *accum) { if (x <= 1) return; else { int z = *accum * x; *accum = z; s_helper (x-1,accum); } } Top-Level Call int sfact(int x) { int val = 1; s_helper(x, &val); return val; } Jorge Castro-Godínez Ensamblador x86 51 / 52
52 Crear e inicializar un puntero int sfact(int x) { int val = 1; s_helper(x, &val); return val; } Initial part of sfact _sfact: pushl %ebp # Save %ebp movl,%ebp # Set %ebp subl $16, # Add 16 bytes movl 8(%ebp),%edx # edx = x movl $1,-4(%ebp) # val = 1 8 x 4 Rtn adr 0 Old %ebp -4 val = 1-8 Temp. -12 Unused Space -16 %ebp Jorge Castro-Godínez Ensamblador x86 52 / 52
53 Pasar un puntero Lazos o ciclos int sfact(int x) { int val = 1; s_helper(x, &val); return val; } Calling s_helper from sfact Stack at time of call: leal -4(%ebp),%eax # Compute &val pushl %eax # Push on stack pushl %edx # Push x call s_helper # call movl -4(%ebp),%eax # Return val # Finish x Rtn adr Old %ebp val=x! = 1 Unused &val x %ebp Jorge Castro-Godínez Ensamblador x86 53 / 52
Ensamblador x86. Ing. Jorge Castro-Godínez
Ensamblador x86 Lección 4 Ing. Jorge Castro-Godínez MT7003 Microprocesadores y Microcontroladores Área de Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica I Semestre 2014 Jorge Castro-Godínez
Más detallesProgramación a Nivel-Máquina III: Sentencias switch y Procedimientos IA32
Programación a Nivel-Máquina III: Sentencias switch y Procedimientos IA32 Semana 4 Bibliografía: [BRY11] Cap.3 Computer Systems: A Programmer s Perspective. Bryant, O Hallaron. Pearson, 2011 Signatura
Más detallesFundamentos de Arquitectura y Código Máquina
Fundamentos de Arquitectura y Código Máquina Lección 3 Ing. Jorge Castro-Godínez MT7003 Microprocesadores y Microcontroladores Área de Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica I Semestre
Más detallesArquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2
Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Instrucciones de control de flujo Arquitectura de Computadores
Más detallesPráctica 3: Programación con subrutinas
Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse
Más detallesFunciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.
MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los
Más detallesApellidos Nombre DNI
A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de
Más detallesProgramación a Nivel-Máquina I: Conceptos Básicos
Programación a Nivel-Máquina I: Conceptos Básicos Semana 2 Bibliografía: [BRY11] Cap.3 Computer Systems: A Programmer s Perspective. Bryant, O Hallaron. Pearson, 2011 Signatura ESIIT/C.1 BRY com Transparencias
Más detallesEntorno de Ejecución del Procesador Intel Pentium
Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador
Más detallesTema 6: Generación de código (parte 2)
Tema 6: Generación de código (parte 2) Procesamiento de Lenguajes Dept de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 6: Generación de código (parte 2) 1 /
Más detallesEscalada de privilegios mediante infección ELF
FIST Conference /Barcelona 2006 @ Sponsored by: Escalada de privilegios mediante infección ELF Jesús Olmos González I/O vs Memory Comprobaciones iniciales Cabecera Elf Tabla de segmentos Cálculo de entry
Más detallesGeneración de código para funciones. Generación de código para funciones. Generación de código para funciones. Generación de código para funciones
Ejemplo introductorio: escritura de funciones en NASM Ejemplo introductorio: escritura de funciones en NASM En estas transparencias pondremos una subrutina ASPLE y la generación de código equivalente En
Más detalles2014 Mario Medina C. 1
Ensamblador y lenguaje C Ensamblador Intel x86 y lenguaje C Sistemas Computacionales Mario Medina C. mariomedina@udec.cl Lenguaje C: lenguaje de alto nivel Fácil de compilar a código de máquina Usado para
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesPráctica 1. Introducción a la programación en ensamblador
Práctica 1 Introducción a la programación en ensamblador 1. Generalidades 2. Introducción 3. Cuestiones 1. Generalidades El desarrollo de las prácticas consistirá en una breve introducción del tema por
Más detallesPRÁCTICA # 2. 0 Direcciones 1 Dirección 2 Direcciones 3 Direcciones
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN UNIDAD DOCENTE DE REDES, ARQUITECTURA Y SISTEMAS ORGANIZACIÓN Y ESTRUCTURA DEL COMPUTADOR I PRÁCTICA # 2 1. Escriba programas
Más detallesEl lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Más detallesPruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
Más detallesESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
Tema 4: Familia x86 Carlos Garre 1 Familia x86 Contenidos Concepto de familia: la familia x86. Generaciones de la familia x86. Primera generación: 8086. Segunda generación: 80286. Tercera generación: 80386.
Más detallesOrganización del Computador I 1er. Parcial 17-Mayo-2005. Turno:
Nota: En el parcial se puede tener la cartilla de Assembler y la de seguimiento (formatos de instrucción) pero no se pueden compartir. Para aprobar el parcial, son necesarios 6(seis) puntos. Para promocionar,
Más detallesFUNDAMENTOS DE PROGRAMACIÓN
FUNDAMENTOS DE PROGRAMACIÓN Sabino Miranda Jiménez Universidad Autónoma del Estado de México (UAEM) Apuntadores (1) Un apuntador es una variable que contiene la dirección de una ora variable Generan código
Más detallesSe guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Más detallesPunteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesIlustrar el mecanismo de llamadas al sistema para solicitar servicios al sistema operativo.
Práctica 1: introducción al simulador SPIM 1. Motivación Seguro que a estas alturas de la carrera sabe ya manejar un ordenador perfectamente. Incluso debe saber cómo programarlos en un lenguaje de alto
Más detallesEntender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este
COMO PENETRAR UN SISTEMA POR MEDIO DE DESBORDAMIENTO DE BUFFER OBJETIVO Entender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este AGENDA Programas
Más detallesGuía Laboratorio Número 1
Guía Laboratorio Número 1 Página 1 de 5 Arquitectura de Computadoras 06/04/2014 Repaso lenguaje ensamblador Escribir códigos en lenguaje ensamblador es bastante sencillo, por lo que no es necesario el
Más detallesISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones
ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad
Más detallesEl lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Más detallesTema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Más detallesContenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesEstructura de Datos [Tipos de datos concretos y tipos de datos abstractos]
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura
Más detallesOrganización de Computadoras
Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal
Más detallesTema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Más detallesLlamada a un método. Llamada a métodos en Mic-1. Llamada a un método. Paso de parámetros. Instrucciones InvokeVirtual e ireturn
Llamada a métodos en Mic-1 Instrucciones InvokeVirtual e ireturn Llamada a un método La dirección de comienzo del método se guarda en la reserva de constantes. 1 Llamada a un método public class demo {
Más detalles62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52
62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 3DUWHGH(QVDPEODGRU 4º) Escribir un programa en ensamblador que pida un número de una cifra por teclado y saque como resultado
Más detalles"Programación en Ensamblador del microprocesador Pentium (I)"
PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de
Más detallesEstructura de Computadores
Estructura de Computadores 4.- Programación en Ensamblador Parte IV Contenido Subrutinas. Llamadas al sistema. Página 2 Subrutinas Módulos de programa que pueden reutilizarse en distintos puntos del programa.
Más detallesPila / Convención C / Interacción C-ASM. Ejercicios. Pila. Organización del Computador II. 21 de marzo de 2017
Organización del Computador II 21 de marzo de 2017 / / Hoy vamos a ver / / Para ponernos de acuerdo... Está en memoria. RSP y RBP la definen. Crece númericamente para atrás. / / Cómo la usamos? PUSH y
Más detallesArquitectura de Computadores
Arquitectura de Computadores Ricardo.Sanz@upm.es Curso 2004-2005 Arquitectura de Computadores Arquitectura de computadores es la disciplina que estudia la organización y funcionamiento de los computadores
Más detallesGENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Más detallesFundamentos de Computadores
Universidad de Murcia Facultad de Informática TÍTULO DE GRADO EN INGENIERÍA INFORMÁTICA Tema 5: Lenguajes del computador: alto nivel, ensamblador y máquina Boletín de autoevaluación de las sesiones prácticas
Más detallesTiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.
ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador
Más detallesHacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13
Práctico Seguridad Sistemas Operativos Hacer ejercicios del libro (Cap. 9 Seguridad): 4,5,6,7,8,9,10,12,13 1) Suponga que se previene la ejecucion de datos localizados en la pila de una funcion (osea,
Más detallesPara leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.
CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA
Más detallesTutorial básico del entorno de desarrollo Eclipse.
Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente
Más detallesTema 2. Diseño del repertorio de instrucciones
Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 16 Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador,
Más detallesCircuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:cabarcas@udea.edu.co Oficina:
Más detallesExamen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
Más detallesIntroducción a la Computación
Introducción a la Computación Primer Cuatrimestre de 2012 Organización de Computadoras (Brevísima Introducción) 1 Mapa de la materia Programas simples en C. Especificación de problemas. Corrección de algoritmos.
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesRepública Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores
República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Prof. Elías Cisneros. Lenguaje C++ Contadores y Acumuladores Usted es libre de: * Copiar, distribuir y comunicar públicamente
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesExamen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1
Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Máquina Expendedora (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Circulo (1.0 pto.)... 3 1.3 Ejercicio
Más detallesTema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.
Programación I, Guía 6 1 Facultad : Ingeniería Escuela : Computación Asignatura: Programación I Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD. Objetivos Utilizar la sintaxis de las funciones definidas
Más detallesFONAMENTS D'ORDINADORS. [H10] La pila (stack) La pila: exemple. Crida a una subrutina. TEMA 7: Subrutines. Manel Guerrero.
FONAMENTS D'ORDINADORS [H10] La pila (stack) TEMA 7: Subrutines Manel Guerrero La pila és una pila de bytes LIFO: Last In, First Out. La pila té associat un punter al seu cim (%esp) que s'inicialitza pel
Más detalles4 o Ingeniería Informática
Esquema del tema 1. Introducción 2. Código intermedio 4 o Ingeniería Informática II26 Procesadores de lenguaje Generación de código 3. Generación de código para expresiones 4. Generación de código para
Más detallesUNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores
6.5. Comunicación de las funciones con su entorno. Hasta el momento se ha conceptualizado una subrutina como un segmento de código que ocurre a menudo en un programa. La idea puede flexibilizarse y aumentar
Más detallesInstrumentación Virtual con LabVIEW
Instrumentación Virtual con LabVIEW ESTRUCTURAS ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de selección de CASE Controles Visibles Variables Locales y Globales Personalizar controles 1.- ENTORNO DE
Más detallesAnálisis general de un Microprocesador
Análisis general de un Microprocesador Arquitectura del chip Repertorio de instrucciones Sistema mínimo Señales de control Función de cada pin del µp Herramientas de desarrollo Performance. ARQUITECTURA
Más detallesGESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Más detallesArquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005
Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y
Más detallesPropedéutico de Programación
Propedéutico de Programación Coordinación de Ciencias Computacionales 6/13 Material preparado por: Dra. Pilar Gómez Gil Chapter 15 Pointers, Dynamic Data, and Reference Types (continuación) Dale/Weems
Más detallesProgramas de ordenador (software)
Programas de ordenador (software) Jorge Juan Chico , Julián Viejo Cortés 2011, 2014, 2015 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre
Más detallesPontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents
Más detallesELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final
Certamen Final 1. Se tiene una aplicación Java que muestra dos botones. Cuando presionamos el botón de la izquierda, incrementa el número mostrado en el botón de la derecha. Cuando presionamos el botón
Más detallesRace Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL
GUIA RACE MANAGER Eventronic, SL DESCRIPCIÓN DEL PROGRAMA El Race Manager es un programa que se creó para facilitar el trabajo de la dirección de carrera de un evento durante y después de una carrera.
Más detallesSesión 8- Práctica de Medida de Rendimiento
Sesión 8- Práctica de Medida de Rendimiento Arquitectura de Computadores I (IS19) Arquitectura de Computadores I (II19) Área de Arquitectura y Tecnología de Computadores Departamento de Ingeniería y Ciencia
Más detallesArquitectura IA-32 Pila. Autor:Alejandro Furfaro
Arquitectura IA-32 Pila 1 Cuando se usa la pila? Cuando llamamos a una subrutina desde un programa en Assembler, mediante la instrucción CALL Cuando el hardware mediante la interfaz adecuada envía una
Más detallesEsquema de un programa en C: bloques básicos
Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,
Más detallesUniversidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0
Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 PROYECTO DE ESTRUCTURA REPETITIVA DO WHILE A c o n t i n u a c i ó n r e
Más detallesTEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES.
TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES. 4.1. Introducción. 4.2. Tratamiento de excepciones. 4.2.1. Excepciones en lenguajes tradicionales. 4.2.2. Tratamiento de excepciones moderno. 4.3. Tratamiento
Más detalles1.00 Clase 8. Datos y métodos estáticos. Datos y métodos estáticos de las clases. Campos de datos estáticos:
1.00 Clase 8 Datos y métodos estáticos Datos y métodos estáticos de las clases Campos de datos estáticos: Sólo una instancia de elemento de datos para toda una clase. Ninguna por objeto. Estático es un
Más detallesGUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN
GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN INTRODUCCION Un arreglo es una colección de variables del mismo tipo, referidos por un nombre común. En Java, los arreglos tienen una o más dimensiones,
Más detallesPráctica 1: Entorno de desarrollo GNU
Práctica 1: Entorno de desarrollo GNU Gustavo Romero López Arquitectura y Tecnología de Computadores 6 de marzo de 2017 Gustavo Romero López Práctica 1: Entorno de desarrollo GNU 1 / 17 Material complementario
Más detallesIntroducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4
Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando
Más detallesTema 5 Repertorios de instrucciones: Modos de direccionamiento y formato
Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato Bibliografía: William Stallings Organización y Arquitectura de computadores 5ta. Edition. Editorial Pearson Educación.- Objetivos:
Más detallesPRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.
PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar
Más detallesELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo
ELO311 Estructuras de Computadores Digitales Operaciones MIPS para Control de flujo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer
Más detallesPráctica 4 - Arquitectura CPU
Práctica 4 - Arquitectura CPU Organización del Computador 1 1er. Cuatrimestre 2006 Programación en Assembler Ejercicio 1 Dados los siguientes valores de la memoria y del registro R0 de la arquitectura
Más detallesBenemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto
Más detallesJUGANDO CON C, ASM Y SYSCALLS Alejandro Hernández - @nitr0usmx
JUGANDO CON C, ASM Y SYSCALLS Alejandro Hernández - @nitr0usmx Tabla de Contenidos 1.-ASM. 1.1.-Definición de ASM. 1.2.-Arquitectura de computadoras. 1.3.-Instrucciones básicas. 2.-SYSCALLS. 2.1.-Definición
Más detallesd) Mencione dos diferencias y dos semejanzas entre clases abstractas e interfaces.
Primer Certamen 1er. Sem 2004 Todas las preguntas tienen igual puntaje. 1. a) Usando los niveles de madurez definidos en CMM, qué nivel le corresponde a una empresa que se caracteriza por comprometer productos
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
Más detallesAbelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.
Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 2006, Australia Autor principal del curso de 2009 a 2012 Iria Estévez Ayres Damaris Fuentes
Más detalles1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
Más detallesExploiting... Stack Based Buffer Overflow
Exploiting... Stack Based Buffer Overflow FAMAF UNC November 10, 2015 Se puede ganar? int main () { int cookie ; char buf [80]; } gets ( buf ); // Lee hasta el primer... if ( cookie == 0 x41424344 ) printf
Más detallesDiseño de compiladores. Representación intermedia Ambientes de ejecución
Diseño de compiladores Representación intermedia Ambientes de ejecución Generación de la RI Es la ultima etapa del frontend de un compilador El objetivo es traducir el programa en el formato que espera
Más detallesContenido. Procesos. Programas/Procesos. Programas/Procesos. Por qué hacer uso de los Procesos? Proceso
Contenido Procesos Qué es un Proceso? Qué información requiere el Sistema de Operación para manejar los procesos? Programas/Procesos Programas/Procesos Un proceso es diferente a un programa Programa: Código
Más detallesVARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesUniversidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C
Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }
Más detallesMódulo 08 Lenguaje Ensamblador
Módulo 08 Lenguaje Ensamblador Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Copyright Copyright 2011-2015 A. G. Stankevicius Se asegura la libertad para copiar,
Más detallesEs un software de simulación que ejecuta programas en lenguaje de ensamblador para procesadores con arquitectura MIPS32.
Arquitectura de Computadoras Jose Luis Tecpanecatl Xihuitl, Ph.D. Es un software de simulación que ejecuta programas en lenguaje de ensamblador para procesadores con arquitectura MIPS32. SPIM lee e inmediatamente
Más detalles11. Algunas clases estándar de Java (II)
122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación
Más detallesBreve manual de Doxygen
Breve manual de Doxygen José Daniel Franco Barrios Grupo 10 Índice - Instalación o Descarga --------- p. 3 o Instalación en Windows y Linux --------- p. 3 - Utilidad --------- p. 4-7 o Listas ---------
Más detalles