Programas de ordenador (software)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programas de ordenador (software)"

Transcripción

1 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 de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons. Puede consultar el texto completo de la licencia en

2 Objetivos Conocer el tipo de instrucciones que ejecuta la CPU de un ordenador Comprender los procesos de compilación y ensamblado de los programas de ordenador Conocer la forma en que se organiza el software para crear programas complejos 2

3 Contenidos Lenguaje máquina y ensamblador Compiladores Jerarquía del software 3

4 Lenguaje máquina y ensamblador Lenguaje (código) máquina: código binario de las instrucciones que ejecuta la CPU Lenguaje ensamblador: representación del lenguaje máquina mediante palabras clave fáciles de entender para el programador Ensamblador mov eax, 4 mov ebx, 0 mov ecx, x top: add ebx, [ecx] add ecx, 4 dec eax jnz top done: mov [sum], ebx Código máquina b0 b804 b5 bb ba b9d060 bf c2 83c104 c5 ffc8 c7 75f6 c9 891c25e060 4

5 Lenguaje ensamblador Ejemplo ; ejemplo introductorio; suma los números de de una lista SECTION.data ; comienzo del segmento de de datos global x x: x: dd dd 1 dd dd 5 dd dd 2 dd dd sum: dd dd 0 SECTION.text ; comienzo del segmento de de código mov eax, 4 ; EAX servirá de de contador para el el ; número de de datos que quedan por por sumar mov ebx, 0 ; EBX almacenará la la suma mov ecx, x ; ECX apunta al al siguiente elemento ; a sumar top: add ebx, [ecx] add ecx, 4 ; mueve el el puntero al al siguiente elemento dec eax ; decrementa el el contador jnz top ; si si el el contador no no es es 0, 0, repetir done: mov [sum], ebx ; hecho, almacena el el resultado en en [sum] 5

6 Compiladores suma2.c #include <stdio.h> int int main(void) int int x[] x[] = 1, 1, 5, 5, 2, 2, 18; 18; int int cont cont = 4; 4; int int sum sum = 0; 0; int int i = 0; 0; while while (cont (cont > 0) 0) sum sum = sum sum + x[i]; x[i]; i++; i++; cont--; printf("sum = %d\n", sum); sum); Compilador suma2.o 0: 0: 8d 8d 4c 4c lea lea ecx,[esp+4] ecx,[esp+4] 4: 4: e4 e4 f0 f0 and and esp,0xfffffff0 esp,0xfffffff0 7: 7: ff ff fc fc push push DWORD DWORD PTR PTR [ecx-4] [ecx-4] a: a: push push ebp ebp b: b: e5 e5 mov mov ebp,esp ebp,esp d: d: push push ecx ecx e: e: ec ec sub sub esp,0x34 esp,0x34 11: 11: c7 c e0 e mov mov DWORD DWORD PTR PTR [ebp-32],0x1 [ebp-32],0x1 18: 18: c7 c e4 e mov mov DWORD DWORD PTR PTR [ebp-28],0x5 [ebp-28],0x5 1f: 1f: c7 c e8 e mov mov DWORD DWORD PTR PTR [ebp-24],0x2 [ebp-24],0x2 26: 26: c7 c ec ec mov mov DWORD DWORD PTR PTR [ebp-20],0x12 [ebp-20],0x12 2d: 2d: c7 c f0 f mov mov DWORD DWORD PTR PTR [ebp-16],0x4 [ebp-16],0x4 34: 34: c7 c f4 f4 mov mov DWORD DWORD PTR PTR [ebp-12],0x0 [ebp-12],0x0 3b: 3b: c7 c f8 f8 mov mov DWORD DWORD PTR PTR [ebp-8],0x0 [ebp-8],0x0 42: 42: eb eb jmp jmp <main+0x54> <main+0x54> 44: 44: 8b 8b f8 f8 mov mov eax,dword eax,dword PTR PTR [ebp-8] [ebp-8] 47: 47: 8b 8b e0 e0 mov mov eax,dword eax,dword PTR PTR [ebp+eax*4-32] [ebp+eax*4-32] 4b: 4b: f4 f4 add add DWORD DWORD PTR PTR [ebp-12],eax [ebp-12],eax 4e: 4e: ff ff f8 f8 inc inc DWORD DWORD PTR PTR [ebp-8] [ebp-8] 51: 51: ff ff 4d 4d f0 f0 dec dec DWORD DWORD PTR PTR [ebp-16] [ebp-16] 54: 54: d 7d f0 f0 cmp cmp DWORD DWORD PTR PTR [ebp-16],0x0 [ebp-16],0x0 58: 58: 7f 7f ea ea jg jg <main+0x44> <main+0x44> 5a: 5a: 8b 8b f4 f4 mov mov eax,dword eax,dword PTR PTR [ebp-12] [ebp-12] 5d: 5d: mov mov DWORD DWORD PTR PTR [esp+4],eax [esp+4],eax 61: 61: c7 c mov mov DWORD DWORD PTR PTR [esp],0x0 [esp],0x0 68: 68: e8 e8 fc fc ff ff ff ff ff ff call call <main+0x69> <main+0x69> 6d: 6d: c4 c add add esp,0x34 esp,0x34 70: 70: pop pop ecx ecx 71: 71: 5d 5d pop pop ebp ebp 72: 72: 8d 8d fc fc lea lea esp,[ecx-4] esp,[ecx-4] 75: 75: c3 c3 ret ret 9

7 Compiladores. Enlazado #include #include <stdio.h> <stdio.h> int int main(void) main(void) int int x[] x[] = 1, 1, 5, 5, 2, 2, 18; 18; int int cont cont = 4; 4; int int sum sum = 0; 0; int int i = 0; 0; while while (cont (cont > 0) 0) sum sum = sum sum + x[i]; x[i]; i++; i++; cont--; cont--; printf("sum printf("sum = %d\n", %d\n", sum); sum); Interpretan un lenguaje de programación de alto nivel y generan código máquina que puede ejecutar la CPU Compilador biblioteca (printf,...) suma.o Enlazador suma 10

8 Compilación. Comparativa mov mov eax, eax, 4 mov mov ebx, ebx, 0 mov mov ecx, ecx, x top: top: add add ebx, ebx, [ecx] add add ecx, ecx, 4 dec dec eax eax jnz jnz top top done: done: mov mov [sum], ebx ebx #include #include <stdio.h> <stdio.h> int int main(void) main(void) int int x[] x[] = 1, 1, 5, 5, 2, 2, 18; 18; int int cont cont = 4; 4; int int sum sum = 0; 0; int int i = 0; 0; while while (cont (cont > 0) 0) sum sum = sum sum + x[i]; x[i]; i++; i++; cont--; cont--; printf("sum = %d\n", %d\n", sum); sum); 0: 0: 8d 8d 4c 4c lea lea ecx,[esp+4] ecx,[esp+4] 4: 4: e4 e4 f0 f0 and and esp,0xfffffff0 esp,0xfffffff0 7: 7: ff ff fc fc push push DWORD DWORD PTR PTR [ecx-4] [ecx-4] a: a: push push ebp ebp b: b: e5 e5 mov mov ebp,esp ebp,esp d: d: push push ecx ecx e: e: ec ec sub sub esp,0x34 esp,0x34 11: 11: c7 c e0 e mov mov DWORD DWORD PTR PTR [ebp-32],0x1 [ebp-32],0x1 18: 18: c7 c e4 e mov mov DWORD DWORD PTR PTR [ebp-28],0x5 [ebp-28],0x5 1f: 1f: c7 c e8 e mov mov DWORD DWORD PTR PTR [ebp-24],0x2 [ebp-24],0x2 26: 26: c7 c ec ec mov mov DWORD DWORD PTR PTR [ebp-20],0x12 [ebp-20],0x12 2d: 2d: c7 c f0 f mov mov DWORD DWORD PTR PTR [ebp-16],0x4 [ebp-16],0x4 34: 34: c7 c f4 f4 mov mov DWORD DWORD PTR PTR [ebp-12],0x0 [ebp-12],0x0 3b: 3b: c7 c f8 f8 mov mov DWORD DWORD PTR PTR [ebp-8],0x0 [ebp-8],0x0 42: 42: eb eb jmp jmp <main+0x54> <main+0x54> 44: 44: 8b 8b f8 f8 mov mov eax,dword eax,dword PTR PTR [ebp-8] [ebp-8] 47: 47: 8b 8b e0 e0 mov mov eax,dword eax,dword PTR PTR [ebp+eax*4-32] [ebp+eax*4-32] 4b: 4b: f4 f4 add add DWORD DWORD PTR PTR [ebp-12],eax [ebp-12],eax 4e: 4e: ff ff f8 f8 inc inc DWORD DWORD PTR PTR [ebp-8] [ebp-8] 51: 51: ff ff 4d 4d f0 f0 dec dec DWORD DWORD PTR PTR [ebp-16] [ebp-16] 54: 54: d 7d f0 f0 cmp cmp DWORD DWORD PTR PTR [ebp-16],0x0 [ebp-16],0x0 58: 58: 7f 7f ea ea jg jg <main+0x44> <main+0x44> 5a: 5a: 8b 8b f4 f4 mov mov eax,dword eax,dword PTR PTR [ebp-12] [ebp-12] 5d: 5d: mov mov DWORD DWORD PTR PTR [esp+4],eax [esp+4],eax 61: 61: c7 c mov mov DWORD DWORD PTR PTR [esp],0x0 [esp],0x0 68: 68: e8 e8 fc fc ff ff ff ff ff ff call call <main+0x69> <main+0x69> 6d: 6d: c4 c add add esp,0x34 esp,0x34 70: 70: pop pop ecx ecx 71: 71: 5d 5d pop pop ebp ebp 72: 72: 8d 8d fc fc lea lea esp,[ecx-4] esp,[ecx-4] 75: 75: c3 c3 ret ret 11

9 Jerarquía del software Sin S.O. (stand-alone) Con S.O. App1 App2 App3 Aplicación (programa) Sistema Operativo Hardware Hardware 12

10 Jerarquía del software aplicaciones utilidades bibliotecas kernel S.O. hardware 13

Computadores y Comunicaciones. Tema 5: Software y sistemas operativos

Computadores y Comunicaciones. Tema 5: Software y sistemas operativos Computadores y Comunicaciones Tema 5: Software y sistemas operativos Febrero, 2011 Jorge Juan Chico , Julián Viejo Cortés Departamento de Tecnología Electrónica Universidad

Más detalles

Arquitectura del ordenador

Arquitectura del ordenador Arquitectura del ordenador Jorge Juan Chico , Julián Viejo Cortés 2012, 2014 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir

Más detalles

Contenidos. Para el usuario. Para el programador. Para el desarrollador del sistema operativo.

Contenidos. Para el usuario. Para el programador. Para el desarrollador del sistema operativo. Sistemas operativos Jorge Juan Chico , Julián Viejo Cortés 2011, 2014 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir

Más detalles

adreça lògicacontingut (en hexadecimal) dels 8 bytes a partir de l adreça lògica

adreça lògicacontingut (en hexadecimal) dels 8 bytes a partir de l adreça lògica Solución al Problema 1 a) Suponer los siguientes contenidos de memoria: adreça lògicacontingut (en hexadecimal) dels 8 bytes a partir de l adreça lògica 0020h:0008h FC 00 1A 23 19 00 20 00 0020h:0010h

Más detalles

Arquitectura IA-32 Pila. Autor:Alejandro Furfaro

Arquitectura 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 detalles

Práctica 1. Introducción a la programación en ensamblador

Prá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 detalles

Abstracción del Control de Flujo de Ejecución

Abstracción del Control de Flujo de Ejecución Abstracción del Control de Flujo de Ejecución Iteraciones Esp. Ing. José María Sola, profesor. Revisión 1.2.0 2017-05-07 Tabla de contenidos 1. Iteraciones... 1 1.1. Introducción... 1 1.1.1. Caso de Estudio...

Más detalles

Apellidos Nombre DNI

Apellidos 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 detalles

Construyendo Programas más Complejos

Construyendo Programas más Complejos Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más

Más detalles

Computadores y Comunicaciones. Tema 4: Arquitectura y funcionamiento básico del ordenador

Computadores y Comunicaciones. Tema 4: Arquitectura y funcionamiento básico del ordenador Computadores y Comunicaciones Tema 4: Arquitectura y funcionamiento básico del ordenador Febrero, 2011 Jorge Juan Chico , Julián Viejo Cortés Departamento de Tecnología

Más detalles

Computadores y Redes de Computadores. Práctica de Laboratorio: Software

Computadores y Redes de Computadores. Práctica de Laboratorio: Software Computadores y Redes de Computadores Práctica de Laboratorio: Software Julián Viejo Cortés Jorge Juan Chico 2008, 2014 Índice de contenidos 1. Introducción...2 2. Ejemplo 1: Suma de números en ensamblador...2

Más detalles

Organización del Computador I 1er. Parcial 17-Mayo-2005. Turno:

Organizació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 detalles

El Diseño de un Lenguaje Máquina

El Diseño de un Lenguaje Máquina Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

Más detalles

Tema: Lenguaje ensamblador embebido

Tema: Lenguaje ensamblador embebido Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras

Más detalles

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1 Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

LENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES PRÁCTICA 11 SUMA, RESTA, MULTIPLICACIÓN Y DIVISIÓN DE DOS NÚMEROS ENTEROS POSITIVOS DE HASTA 20 DÍGITOS DECIMALES 1. INTRODUCCIÓN Mediante esta práctica, trabajaremos con números binarios de hasta veinte

Más detalles

Práctica 1: Entorno de desarrollo GNU

Prá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 detalles

Apellidos Nombre DNI

Apellidos Nombre DNI Apellidos Nombre DNI Examen de Arquitectura de Computadores (Telemática) Convocatoria de Junio: 2 06 2010 El código mostrado a continuación pretende determinar el valor numérico de una cadena de caracteres

Más detalles

Tema 1. Fundamentos del lenguaje ensamblador

Tema 1. Fundamentos del lenguaje ensamblador Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del

Más detalles

Introducción a la Computación

Introducció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 detalles

Exploiting... Stack Based Buffer Overflow

Exploiting... 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 detalles

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Sistemas operativos, arquitectura von Neumann, configuración del PC (3 puntos) 1) Señale la opción correcta: [_]

Más detalles

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares: Práctica 4 Organización del Computador 1 12 de septiembre de 2005 Algunas consideraciones preliminares: Donde aparece xxxxxxxx quiere decir que el valor correcto ya está en esa dirección de memoria Todos

Más detalles

El programa ALFA que se utilizará en el ejemplo se muestra en la figura. // Incrementa en 1 el // dato de entrada

El programa ALFA que se utilizará en el ejemplo se muestra en la figura. // Incrementa en 1 el // dato de entrada Marina de la Cruz Alfonso Ortega En este documento se presenta un ejemplo de compilación de un programa escrito en ALFA. Durante el proceso de compilación se traduce el código ALFA a código NASM. El objetivo

Más detalles

Ingeniería Inversa en Linux

Ingeniería Inversa en Linux Índice: 1. Introducción. 2. Qué es la ingeniería inversa. 3. La no distribución del código fuente 4. Para qué se utiliza. 5. Utilidades. 6. El formato ELF. 7. Desarrollo de la Ingeniería Inversa. 8. Ingeniería

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores El computador simple ------------------------------------------------------------------------- Autores: David Guerrero. Isabel Gómez Usted es libre de copiar, distribuir y comunicar

Más detalles

Instrucciones del microprocesador

Instrucciones del microprocesador Instrucciones del microprocesador Formato de las Instrucciones Las líneas de instrucciones se integran de 4 campos. [Identificador]: Se utiliza par etiquetar a las intrucciones donde se realizara el salto,nombre

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI Apellidos Nombre DNI Examen de Arquitectura de Computadores (Telemática) Convocatoria de Julio: 9 07 2010 El siguiente código incompleto, trata de averiguar si existe un fichero cuya ruta se proporciona.

Más detalles

Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,2

Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,2 Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,2 Sistemas operativos, arquitectura von Neumann, configuración del PC (4 puntos).- Señale la opción incorrecta: [_] a)

Más detalles

Introducción a los lenguajes de descripción de hardware

Introducción a los lenguajes de descripción de hardware Introducción a los lenguajes de descripción de hardware Noviembre 2009 Jorge Juan Chico Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir

Más detalles

Aprendiendo Sistemas Operativos: Programación de Procesadores de Arquitectura IA-32

Aprendiendo Sistemas Operativos: Programación de Procesadores de Arquitectura IA-32 Aprendiendo Sistemas Operativos: Programación de Procesadores de Arquitectura IA-32 Este documento forma parte de la serie Aprendiendo Sistemas Operativos y sirve como una introducción a los aspectos básicos

Más detalles

Unidad 2 Programación en Lenguaje Ensamblador

Unidad 2 Programación en Lenguaje Ensamblador Microcontroladores Unidad 2 Programación en Lenguaje Ensamblador M. C. Miguelangel Fraga Aguilar Modos de direccionamiento Modo de direccionamiento es la manera en que una instrucción obtiene los operandos

Más detalles

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN

Más detalles

Introducción a la Computación (Matemática)

Introducción a la Computación (Matemática) Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Brevísima Introducción a la Organización de Computadoras 1 Mapa de la materia Programas simples en C++. Especificación de problemas.

Más detalles

Arquitectura de Sistemas

Arquitectura de Sistemas Arquitectura de Sistemas Práctica 1: Entorno de desarrollo GNU Gustavo Romero López Actualizado: 11 de mayo de 2018 Arquitectura y Tecnología de Computadores Material complementario Manuales: Hardware:

Más detalles

Organización de computadoras. Clase 6. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización de computadoras. Clase 6. Universidad Nacional de Quilmes. Lic. Martínez Federico Organización de computadoras Clase 6 Universidad Nacional de Quilmes Lic. Martínez Federico Qué vimos? Pila Push Pop Modularizar Reusar Call y Ret Q5 Qué vimos? JMP y CALL no son lo mismo? NO Qué hay para

Más detalles

Intel 8086 modelo básico (primera parte) Registros:

Intel 8086 modelo básico (primera parte) Registros: Intel 8086 modelo básico (primera parte) Registros: Uso general: AX, BX, CX, DX, SI, DI, BP. Uso con direccionamento especial: SP, IP. Registros de segmento: CS, SS, DS, ES. Modelo de los registros: 20

Más detalles

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086 Estructura de Computadores: Tema 1 El procesador Introducción Estudiaremos la arquitectura del procesador i8086 (CPU, registros,...), su gestion de la memoria y su conjunto de instrucciones. Programaremos

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Examen de Estructura de Computadores. Septiembre de 25 Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen constará de dos partes: El examen tendrá una duración total de 2 horas. La nota final

Más detalles

Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,15

Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,15 Pregunta correcta=0,4 Pregunta no contestada=0 Pregunta incorrecta (tipo test)=-0,15 Sistemas operativos, arquitectura von Neumann, configuración del PC (3 puntos) 1) Cual de las siguientes afirmaciones

Más detalles

Pila / Convención C / Interacción C-ASM. Ejercicios. Pila. Organización del Computador II. 21 de marzo de 2017

Pila / 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 detalles

Soluciones de los ejercicios sobre instrucciones y direccionamiento

Soluciones de los ejercicios sobre instrucciones y direccionamiento Soluciones de los ejercicios sobre instrucciones y direccionamiento Siguiente: Soluciones de los ejercicios sobre periféricos y ADM Padre: Materiales didácticos Inicial: Fundamentos de ordenadores 1 Con

Más detalles

Tema 4. Fundamentos del ensamblador

Tema 4. Fundamentos del ensamblador Tema 4. Fundamentos del ensamblador Laboratorio de Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 30 Índice Filosofía de programación Organigramas

Más detalles

Módulo 08 Lenguaje Ensamblador

Mó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 detalles

Entender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este

Entender 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 detalles

Programación de IA-32 Modo Real

Programación de IA-32 Modo Real Programación de IA-32 Modo Real Control del flujo de la ejecución Erwin Meza Vega IA-32 Modo real (1/2) Acceso sólo a características limitadas del procesador Se comporta como un 8086 muy rápido Uso de

Más detalles

Diferentes Perspectivas de un Ordenador

Diferentes Perspectivas de un Ordenador Arquitectura de Ordenadores Programación en ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Diferentes Perspectivas de un Ordenador INT-1

Más detalles

Generació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

Generació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 detalles

Introducción a la programación

Introducción a la programación Introducción a la programación PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Introducción 1 Introducción a la programación Computador: aparato electrónico capaz de interpretar

Más detalles

MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080

MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080 MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080 Registro de Estado S Z Ca P C S: Bit de Signo Z: Bit de Cero Ca: Carry Auxiliar P: Bit de Paridad C: Bit de Carry AC: Acumulador ACI -Suma en forma inmediata

Más detalles

Lectura y escritura de un caracter

Lectura y escritura de un caracter Lectura y escritura de un caracter Trabajando con cadenas en Debug Herramientas Entorno Dos y Windows Masm es el ensamblador mas usado en DOS y Windows, desarrollado por Microsoft, puede utilizarse para

Más detalles

PRÁCTICA # 2. 0 Direcciones 1 Dirección 2 Direcciones 3 Direcciones

PRÁ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 detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

Práctica 3: Programación en ASM Orga 1

Práctica 3: Programación en ASM Orga 1 Ignacio Eguinoa Organización del Computador I DC - UBA Segundo Cuatrimestre de 2015 Generaciones de lenguajes 1G: Lenguaje de máquina(código binario de operaciones) 2G: Lenguaje Ensamblador(Assembly) (Textual

Más detalles

Introducción al Software Libre

Introducción al Software Libre Introducción al Software Libre Jorge Juan . 2014, 2015. Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas bajo las condiciones de la licencia

Más detalles

101 Sombras del Malware. Israel Aráoz Severiche C EH,C HFI,

101 Sombras del Malware. Israel Aráoz Severiche C EH,C HFI, 101 Sombras del Malware Israel Aráoz Severiche C EH,C HFI, LA27001 @iara0z Agenda Situación Actual Objetivo del Análisis de Malware Tipos de Análisis Estático Dinámico Preguntas Nslookup Israel.araoz Ing.

Más detalles

Ensamblador del Pentium

Ensamblador del Pentium Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Ensamblador del Pentium

Más detalles

Práctica 6. El procesador

Práctica 6. El procesador Práctica 6 El procesador Material: PC y Visual Studio 2013 Duración: 2 horas Lugar: Laboratorios de prácticas (Laboratorio de Redes-Hardware) La herramienta que vamos a utilizar para el desarrollo de las

Más detalles

MOV EBX, 0 ; Finalizar cad. destino

MOV EBX, 0 ; Finalizar cad. destino Instrucciones generales para la realización de este examen La respuesta debe escribirse en el hueco existente a continuación de cada pregunta con letra clara. Cada respuesta correcta suma un punto Cada

Más detalles

Programas Residentes En Lenguaje Ensamblador

Programas Residentes En Lenguaje Ensamblador UNIVERSIDAD DEL VALLE DE GUATEMALA Facultad de Ingeniería Programas Residentes En Lenguaje Ensamblador Trabajo de investigación presentado por Hugo Chinchilla Luis Monteros Josué Rendón Estrada i INDICE

Más detalles

Acceso Directo a Memoria

Acceso Directo a Memoria Tema 7: Acceso Directo a Memoria 7.1 El concepto Qué es una transferencia por acceso directo a memoria? El modelo de transferencia de información visto en los capítulos anteriores se denomina transferencia

Más detalles

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA (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 detalles

Fundamentos de Arquitectura y Código Máquina

Fundamentos 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 detalles

Comparaciones en lenguaje ensamblador

Comparaciones en lenguaje ensamblador Comparaciones en lenguaje ensamblador Objetivo: Entender cómo se realizan las comparaciones de datos en lenguaje ensamblador En lenguaje ensamblador no existe la instrucción IF como se trabaja en otros

Más detalles

Organización de Computadoras. Clase 8

Organización de Computadoras. Clase 8 Organización de Computadoras Clase 8 Temas de Clase Organización de Registros Instrucciones Notas de Clase 8 2 Organización de registros Registros visibles al usuario: son utilizados por el programador.

Más detalles

T1-Introducción. Índice

T1-Introducción. Índice T1-Introducción 1.1 Índice El papel del S.O. Servicios que ofrece el S.O. Formas de acceder al kernel (Tema 8 EC) Modos de ejecución Interrupciones, excepciones y llamadas a sistema Llamadas a sistema

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 1.MaNoTaS 1 Definiciones (I) Descripción Un

Más detalles

"Programación en Ensamblador del microprocesador Pentium (I)"

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 detalles

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

Más detalles

La Pila en los Procesadores IA-32 e Intel c 64

La Pila en los Procesadores IA-32 e Intel c 64 La Pila en los Procesadores IA-32 e Intel c 64 Alejandro Furfaro Ilustraciones de David Gonzalez Marquez (tnx a lot) Abril 2012 Abril 2012 1 / 44 Agenda 1 Funcionamiento Básico 2 Ejemplos de uso de pila

Más detalles

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

ESCUELA 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 detalles

ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp.

ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp. ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip (denominados

Más detalles

Taller de Protección y Seguridad

Taller de Protección y Seguridad Taller de Protección y Seguridad Sistemas Operativos Diego Fernandez Slezak (gracias Sabi!!!) 1 Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires SO - Taller

Más detalles

3 - Arquitectura interna de un up

3 - Arquitectura interna de un up cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos

Más detalles

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 2 INSTRUCCIONES DE UN COMPUTADOR ÍNDICE Definiciones Formatos de instrucción Modos de direccionamiento Tipos de instrucciones Diagrama de flujo Lenguaje del computador Definiciones: conceptos de arquitectura

Más detalles

Tema 5.1: Presentación de datos en pantalla

Tema 5.1: Presentación de datos en pantalla Tema 5.1: Presentación de datos en pantalla El registro de flags del i8086 Instrucciones de transferencia Instrucciones de transferencia de control Instrucciones aritméticas: comparación Representación

Más detalles

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas

Más detalles

Funciones y Datos en Intel 8086

Funciones y Datos en Intel 8086 y Datos en Intel 8086 Departamento de Arquitectura 1 1 Instituto de Computación Facultad de Ingeniería Universidad de la República Arquitectura de Computadoras, 2016 Temas 1 2 Tipos atómicos Tipos estructurados

Más detalles

Tema 2: Representación Digital de la Información

Tema 2: Representación Digital de la Información Tema 2: Representación Digital de la Información Jorge Juan Chico , Julián Viejo Cortés 2-7 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es

Más detalles

Ensamblador x86. Ing. Jorge Castro-Godínez

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 detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática ENUNCIADO PROBLEMA 1 A continuación se incluye el código de una aplicación formada por un programa principal escrito en lenguaje C,

Más detalles

Ejercicios sobre instrucciones y direccionamiento

Ejercicios sobre instrucciones y direccionamiento Ejercicios sobre instrucciones y direccionamiento Siguiente: Ejercicios sobre periféricos y ADM Padre: Materiales didácticos Inicial: Fundamentos de ordenadores 1 Suponga que se modifica la estructura

Más detalles

Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania

Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania Violeta Un ensamblador es el programa que convierte un listado

Más detalles

Computadores y Comunicaciones. Tema 3: Representación Digital de la Información

Computadores y Comunicaciones. Tema 3: Representación Digital de la Información Computadores y Comunicaciones Tema 3: Representación Digital de la Información Febrero, 2 Jorge Juan Chico , Julián Viejo Cortés Departamento de Tecnología Electrónica

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria. 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria. Sistema complejo se estudia

Más detalles

Asignaturas antecedentes y subsecuentes

Asignaturas antecedentes y subsecuentes PROGRAMA DE ESTUDIOS Ensamblador Área a la que pertenece: Área Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0160 Asignaturas antecedentes y subsecuentes PRESENTACIÓN

Más detalles

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1 Interrupciones FUNCIÓN INT

Más detalles

Organización de computadoras. Clase 2. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización de computadoras. Clase 2. Universidad Nacional de Quilmes. Lic. Martínez Federico Organización de computadoras Clase 2 Universidad Nacional de Quilmes Lic. Martínez Federico La clase pasada. Compuertas lógicas: La clase pasada. Compuertas lógicas: Qué? La clase pasada. Compuertas lógicas:

Más detalles

Examen Parcial de Arquitectura de Computadoras Prof: Ing. José ESTRADA MONTES

Examen Parcial de Arquitectura de Computadoras Prof: Ing. José ESTRADA MONTES Examen Parcial de Arquitectura de Computadoras Prof: Ing José ESTRADA MONTES 1- Diseñe un sistema de control de un motor de paso ( hardware y software ) a través de una computadora y una tarjeta de interfase

Más detalles

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez Dpto. Física y Arquitectura de Computadores Universidad Miguel Hernandez Es el lenguaje de más bajo nivel que admite una máquina. El ensamblador hace que el código binario(máquina sea transparente al usuario)

Más detalles

Instrucciones de máquina y tipos de software

Instrucciones de máquina y tipos de software (obsoletos) Instrucciones de máquina y tipos de software Software del sistema: Implementa sobre la máquina convencional («desnuda») una «máquina virtual»: la máquina operativa Software de aplicaciones:

Más detalles

PROGRAMA INSTRUCCIONAL PROGRAMACION III

PROGRAMA INSTRUCCIONAL PROGRAMACION III UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO FACULTAD DE INGENIERIA ESCUELA DE COMPUTACION PROGRAMA INSTRUCCIONAL PROGRAMACION III CODIGO DENSIDAD HORARIA PRE - SEMESTRE U.C. ASIGNADO EQUIVALENTE H.T.

Más detalles

Ensamblador x86: lazos y procedimientos

Ensamblador x86: lazos y procedimientos 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

Más detalles

Organización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura

Organización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura Organización n del Computador CPU (ISA) Conjunto de Instrucciones de la Arquitectura Estructura (computadora) periféricos Computador Computador Unidad Central de Proceso CPU Sistema de interconexión Memoria

Más detalles

República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI. Introducción a lenguaje C++. Parte IV Ciclos iterativos

República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI. Introducción a lenguaje C++. Parte IV Ciclos iterativos http://aldeafraypedrodeagreda.wordpress.com Elaborado por Prof. Elías Cisneros cisneros.elias@gmail.com 23/12/09 República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI Introducción

Más detalles