La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado."— Transcripción de la presentación:

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

2 Arquitectura Ensamblador !!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 Análisis léxico – Sintáctico (Flex + Bison) Análisis Semántico (casi completo) !!ARBvp1.0 AST Tabla símbolos InsertarST(arr,5, ENV_PARAMETER) Generación Código Específico GPU Genérico Line:By0By1By2By3By4By5By6By7By8By9ByAByBByByDByEByF 011: b 6a 00 0f 1b : b 1b b : b 1b b 14 b8 014: b 1b b : b 1b b 04 f8 016: b 1b b : b 1b b : b b 04 d8 019: b b : ae 00 0c 1b : b 04 b8 022: b : c 1b 14 f8 024: a ae 00 0c 1b : b c 1b 14 38

3 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.

4 Compilador v/s Ensamblador compilador Un lenguaje de alto nivel utiliza un compilador para traducir el código fuente a lenguaje de máquina (código objeto). ensamblador 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.

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

6 Existencia de Niveles Nivel n Programa Fuente Traducción 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

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

8 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)

9 Lenguaje ensamblado A)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 Lenguaje de maquina (octal o hexadecimal)

10 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 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 RESERVA 4 BYTE V INICIAL 2 RESERVA 4 BYTE V INICIAL 3 RESERVA 4 BYTE V INICIAL 4 RESERVA 4 BYTE V INICIAL 0

11 Instrucci ón en ensambla dor a 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". Instrucción en ensamblador

12 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

13 El Proceso de Ensamblaje 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 etiqueta SUSANA: MARÍA: MARISA: CARMEN: Campo Campo Campo MOV EAX, EAX-I MOV EBXJ EBX. J MOV ECX.K ECX« K IMUL EAX.EAX EAX - !! IMUL EBX.EBX EBX = J"J IMUL ECX.ECX ECX = K«K ADD EAX, EBX EAX-I"I + J*J ADD EAX.ECX EAX.1*1 + JM + MOV N.EAX N = 1*1 + J*J + K* JMP YA SALTA A YA operació n operando s comentarlos * ZT S 134 Longitud instrucción ILC ante» sentencia Fig 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.

14 = Símbolo Valor Otra información : SUSAN A :. 100 MARÍA 11 1 MARISA 125 CARME N 129 h L« L« h Fig Tabla de simbolos para el programa de la figura 7-3. Código de Código de PrimerSegundo operación Longitud de Clase de operación operando operando hexadecimal la instrucción instrucción '- Fig. 1 AAA e ADD EAX IMMED ADD REG REG AND EAX IMMED AND REG REG = =L =J - = s- s- -5. Extractos de una tabla de códigos de operación en un ensamblador

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

16 Tabla de Símbolos: Lento, fácil de - programar Organización: a) Vector de pares (*) Valor 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 Símbolos Búsqueda lineal, secuencial

17 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.

18 MACROS: * Definición: Asignar un nombre a una porción de texto. MOVEAX.P MOVEBX.Q MOVO.EAX MOVP.EBX MOVEAX.P MOVEBX.Q MOVQ.EAX MOVP.EBX 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.

19 *) 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.

20 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 No Si Debe usarse una Instrucción retomo para devolver el control a la sentencia que sigue a la llamada No Si Numero de copia» del cuerpo que aparecen en el programa objeto Una por cada llamada a la macro 1 Fl» Comparación entre llamada* a macro y a procedimiento

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

22 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

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

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

25

26


Descargar ppt "Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado."

Presentaciones similares


Anuncios Google