Procesamiento de Datos I

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

INTELIGENCIA ARTIFICIAL
Clasificación de los compiladores
CLASE 4 EL ENSAMBLADOR.
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Prototipo de compilador didáctico del lenguaje LC99
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Facultad de Ciencias de la Computación
Fundamentos de programación
Lenguajes de programación
Temas Operaciones básicas Instalando el compilador
Introducción a la Programación
INTRODUCCION A LOS ALGORITMOS (Conceptos previos)
Técnico en programación de Software
Combinadores SK.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Programación 1 Introducción
Procesamiento de Datos I
3. INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
JORNADA 1 DEL 24 DE MARZO AL 30 DE MARZO EQUIPO 01 VS EQUIPO 02 EQUIPO 03 VS EQUIPO 06 EQUIPO 05 VS EQUIPO 10 EQUIPO 07 DESCANSA EQUIPO 08 VS EQUIPO 13.
Pablo Cesar Tapia Catacora
Tema 3. Optimización de Código
Funciones en lenguaje C

Lenguaje de maquina Unidad II Programación en Lenguaje Ensamblador. Interrupción: Introducción. Servicios. Tema:
Asignatura: Computadores
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C.
UNIDAD I Conceptos Básicos.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
M.C. Meliza Contreras González
PRINCIPIOS DE PROGRAMACION ESTRUCTURADA
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
FUNDAMENTOS DE PROGRAMACION
Secciones y Segmentos STARTUP
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Administración de Memoria
FUNDAMENTOS DE PROGRAMACIÓN ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ.
PBN © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS.
1.4 Traductor y Su estructura
Procesadores de Lenguajes
LENGUAJES DE PROGRAMACIÓN
Capítulo 7 Gestión de memoria.
Programación de Sistemas
Prof. Gabriel Matonte Programación I Prof. Gabriel Matonte

INFORMATICA VII (Programación e implementación de sistemas)
Lenguajes de Programación
1 3 : METODOLOGÍA DE LA. PROGRAMACIÓN. 2 Metodología de la programación Definiciones Lenguajes de programación Traductores Ciclo de vida de los programas.
Ensambladores y Compiladores Universidad de Santiago de Chile Facultad de Ciencia Licenciatura en Ciencia de la Computación Laboratorio de Microcomputadores.
Metodología de la programación
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Prof. Flor Narciso Departamento de Computación
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
Teoría de lenguajes y compiladores
Tipos de Lenguajes Ensamblador.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Programación de Sistemas
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Algoritmos y Programación. Objetivos de Aprendizaje: Al finalizar esta unidad ud. debe estar en la capacidad de: Definir el propósito y el contenido de.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
Lenguaje ensamblador Resumen en diapositivas
El proceso ensamblador. José Luis Vergara Soberanis.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Transcripción de la presentación:

Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Arquitectura Ensamblador Line:By0By1By2By3By4By5By6By7By8By9ByAByBByByDByEByF 011: 16 00 03 28 00 01 00 08 26 1b 6a 00 0f 1b 04 78 012: 09 00 03 00 00 00 02 08 24 1b 1b 00 08 1b 14 18 013: 09 00 04 00 00 00 02 08 24 1b 1b 00 04 1b 14 b8 014: 09 00 05 00 00 00 02 08 24 1b 1b 00 02 1b 04 58 015: 09 00 06 00 00 00 02 08 24 1b 1b 00 01 1b 04 f8 016: 16 00 01 00 00 00 02 30 24 1b 1b 00 08 1b 14 98 017: 16 00 02 00 00 01 02 30 24 1b 1b 00 08 1b 04 38 018: 16 00 00 00 00 00 03 30 24 00 1b 00 02 1b 04 d8 019: 16 00 01 00 00 00 03 30 24 00 1b 00 01 1b 14 78 020: 01 00 08 00 00 08 18 08 24 04 ae 00 0c 1b 04 18 021: 17 00 00 00 00 00 13 30 24 00 00 00 08 1b 04 b8 022: 17 00 01 00 00 00 13 30 24 00 00 00 04 1b 14 58 023: 01 00 08 00 00 09 18 08 24 04 04 00 0c 1b 14 f8 024: 01 00 08 00 00 0a 18 08 26 04 ae 00 0c 1b 04 98 025: 01 00 08 00 00 0b 18 08 26 04 04 00 0c 1b 14 38 !!ARBvp1.0 PARAM arr[5] = { program.env[0..4] }; #ADDRESS addr; ATTRIB v1 = vertex.attrib[1]; PARAM par1 = program.local[0]; OUTPUT oPos = result.position; OUTPUT oCol = result.color.front.primary; OUTPUT oTex = result.texcoord[2]; ARL addr.x, v1.x; MOV res, arr[addr.x - 1]; END Generación Código Específico GPU Genérico !!ARBvp1.0 AST Análisis léxico – Sintáctico (Flex + Bison) Análisis Semántico (casi completo) Tabla símbolos InsertarST(“arr”,5, ENV_PARAMETER)

Ventajas de Ensamblador Proporciona más control sobre el manejo particular de los requerimientos de hardware Genera módulos ejecutables más pequeños y compactos. Normalmente se ejecutan más rápido que el proceso equivalente codificado en un lenguaje de alto nivel.

Compilador v/s Ensamblador Un lenguaje de alto nivel utiliza un compilador para traducir el código fuente a lenguaje de máquina (código objeto). Un lenguaje de bajo nivel utiliza un ensamblador para realizar la traducción. Para ambos niveles, un programa enlazador completa el proceso al convertir el código objeto en lenguaje de máquina.

prog.lst prog.crt prog.map Editor Crea un programa fuente en ensamblador (.ASM) prog.asm Ensambla el programa fuente, crea un programa objeto (.OBJ) Ensamblador Ensamble prog.lst prog.crt prog.map prog.obj Enlazador Enlaza el programa objeto, crea un programa ejecutable Enlace prog.exe

Existencia de Niveles Nivel n Traducción Programa Fuente Compilación Interpretación Nivel n-1 Programa Objeto a) Generación de un programa equivalente en lenguaje objeto b) Ejecución del nuevo programa generado

Niveles en Tiempo de Ejecución. Nivel del SO Objeto del usuario Programas presentes Maquina Convencional El sistema operativo Microprogramación El micro programa Nota: el programa fuente se ha desvanecido

Correspondencia biunívoca Que es un lenguaje ensamblador ? Es aquel en que cada sentencia produce exactamente una instrucción de máquina. Correspondencia biunívoca (características que los distingue de los lenguajes al alto nivel)

Lenguaje de maquina Lenguaje ensamblado (octal o hexadecimal) 24576 57344 28672 29184 ADD SUB MUL DIV B) Asigna a las direcciones nombres simbólicos C) Solo se ejecuta en una familia de maquinas Para la PDP_11

Formula de una Instrucción en lenguaje ensamblador FORMUL: MOV ADD ADD MOV   EAX, 1 EAX, J EAX, K N, EAX CARGA 1 EN EAX SUMA J A EAX SUMA K A EAX ALMACENA 1 + J + K EN N 1: DD J: DD K: DD L: DD 2 3 . 4 0 RESERVA 4 BYTE V INICIAL 2 RESERVA 4 BYTE V INICIAL 3 RESERVA 4 BYTE V INICIAL 4 RESERVA 4 BYTE V INICIAL 0 (a) FORMUL: MOVE.L ADD.L ADD.L MOVE.L I,DO J.DO K,DO DO,N CARGA 1 EN DO SUMA J A DO SUMA K A DO ALMACENA 1 + J + K EN N Formula de una Instrucción en lenguaje ensamblador Campo Campo etiqueta operación Campo operandos Campo de comentarios 1: DC.L J: ' DC.L K: DC.L L: DC.L 2 3 4 0  

Instrucción en ensamblador   b c d a- Campo de etiqueta b- Campo de operación c- Campo de operando d- Campo de comentario   "Dos nombres simbólicos a las instrucciones". "Abreviatura simbólica del código de operación". "Especifica direcciones y registros". "Permite explicar el funcionamiento del programa".

Lenguaje Ensamblador vs. Lenguaje de Alto Nivel 1)- Arq. Dependiente Arq. Independiente 2)- Difícil de Mantener Fácil Mantener 3)- Difícil de Programar Fácil de Programar 4)- Etiquetas Simbólicas restringidas en su longitud Sin etiquetas mas próximo al lenguaje natural

El Proceso de Ensamblaje operandos Campo MOV EAX, EAX-I EBXJ EBX. J Ensambladores de 2 pasadas: 1° Pasada: Construir la tabla de símbolos; que contiene etiquetas y valores (nombres simbólicos). Ej.: ESPACIO equ 100 Debe identificarse la dirección de la instrucción para ello se crea el ILC ____* "Contador de Posiciones de Instrucción" Campo   MOV EAX, EAX-I EBXJ EBX. J ECX.K ECX« K IMUL EAX.EAX EAX - !•! EBX.EBX EBX = J"J ECX.ECX ECX = K«K ADD EAX, EBX EAX-I"I + J*J EAX.ECX EAX .1*1 + JM + N.EAX N = 1*1 + J*J + K* JMP YA SALTA A YA operación operandos comentarlos 5   100 6 106 111 2 117 3 11* 122 126 1ZT 129 S 134 Longitud instrucción ILC ante» sentencia Campo etiqueta SUSANA: MARÍA: MARISA: CARMEN: Fig. 7-3. El contador de posiciones de instrucción (ILC) va tomando el valor de la direc­ción donde se cargará la instrucción en memoria. En este ejemplo, las sentencias anteriores a SUSANA ocupan 100 bytes.  

    =   Símbolo Valor Otra información : SUSANA :. 100 MARÍA 111 MARISA 125 CARMEN 129 h L «       Fig. 7-4. Tabla de simbolos para el programa de la figura 7-3. Código de Código de Primer Segundo operación Longitud de Clase de operación operando operando hexadecimal la instrucción instrucción   '- Fig. 1 AAA - 37 1 e ADD EAX IMMED32 05 5 4 REG 01 2 19 AND 25 21 = =L =J s - -5. Extractos de una tabla de códigos de operación en un ensamblador 80386.              

2° Pasada: Es generar el programa objeto y de ser posible imprimir el listado del ensamblaje. Algunos errores comunes (pag 460)

Organización: a) Vector de pares (*) Tabla de Símbolos: Organización: a) Vector de pares (*) Lento, fácil de -programar Símbolos Valor Búsqueda lineal, secuencial b) Ordenar tabla de N elementos y usar algoritmo de búsqueda binaria intentos c) Codificación por transformación: Uso de una función de transformación que haga corresponder a cada símbolo un numero entre O y k-1 (*) Memoria Asociativa

MACROS: Agrupar instrucciones y llamarlas c/vez que se necesite. Es necesario una instrucción de llamada a otra de retorno.(ej. de 2 Inst.) Las macros proporcionan una solución sencilla y eficiente al problema que plantean las secuencias idénticas o casi idénticas de instrucciones que se usan repetidamente en un programa.

MACROS: * Definición: Asignar un nombre a una porción de texto. MOV EAX.P MOV EBX.Q MOV O.EAX MOV P.EBX MOV Q.EAX SWAP MACRO MOVEAX.P MOV EBX.Q MOV Q,EAX MOV P.EBX ENDM SWAP 1. Encabezado de Macro —— nombre. 2. Texto que forma el cuerpo de la Macro. 3. Una instrucción de fin de Macro.

*) Llamado: El uso del nombre de una macro como código de operación. *) Expansión: El reemplazo por el cuerpo de la Macro; este se traduce en el proceso de ensamblaje, no en el de ejecución. NOTA; Ante la presencia de un programa en lenguaje de máquina es imposible decir si se han utilizado Macros en su generación.

MACROS Vs. PROCEDIMIENTOS Llamada a procedimiento ítem Llamada a macro Momento en al que (e hice   Durante al ensamblaje Duren» le ejecución del programa objeto El cuerpo se inserta en el programa objeto en todos los sitios donde aparece el nombre Sí No Es una instrucción de llamada a procedimiento insertada en el programa objeto Si Debe usarse una Instrucción retomo para devolver el control a la sentencia que sigue a la llamada Numero de copia» del cuerpo que aparecen en el programa objeto Una por cada llamada a la macro 1 Fl». 7-10. Comparación entre llamada* a macro y a procedimiento

Macros con Parámetros: - Parámetros formales. - Parámetros reales. CHANCE MACRO P1,P2 EAX.P1 EBX.P2 P2.EAX P1.EBX MOV EAX.P MOV EBX.Q MOV Q.EAX MOV P.EBX MOV EAX.R MOV EBX.S MOV S.EAX MOV R.EBX MOV CHANCE P, Q CHANCE R, S (a) (b) Ftg. 7-11. Secuencias casi idénticas de instrucciones, (a) Sin macro. (b) Con una macro.

Estructura de un módulo objeto   A B C D E F   Estructura de un módulo objeto A- Nombre, longitud, fecha B- Lista de símbolos definidos en el módulo a los que otros módulos pueden hacer referencia (junto con su dirección) para identificarlos el programador usa una pseudo instrucciones de pto. de entrada o símbolo externos — »• tabla de pto. de entrada. C- Lista de los símbolos que usa, pero que está definido en otros módulos, junto con otra que dice que instrucciones usa c/u de esos símbolos —— >• tabla de referencia externa. Identificación Tabla de Ptos de entrada Tabla de referencias externas Instrucciones de maquinarias y constantes Lista de rehubicación Fin del Módulo              

Enlace dinámico "Enlazar procedimientos compilados por separado en el momento en el que se llama por primera vez"

7-17. Enlace dinámico, (a) Antes de llamar a TIERRA . 7-17. Enlace dinámico, (a) Antes de llamar a TIERRA. (b) Después de llamar i TIERRA-