1 / 28

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

Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado. Existencia de Niveles. Nivel n. Programa Fuente. Compilación. Traducción. Interpretación. Nivel n-1. Programa Objeto. a) Generación de un programa equivalente en lenguaje objeto.

raiden
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 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)

  5. Lenguaje ensamblado Lenguaje de maquina (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

  6. Formula de una Instrucción en lenguaje ensamblador Campo Campo etiqueta operación Campo operandos Campo de comentarios 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 1: DC.L J: ' DC.L K: DC.L L: DC.L 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

  7. Instrucción en ensamblador a b c d Instrucción en ensamblador 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". "Especificadirecciones y registros". "Permite explicar el funcionamiento del programa".

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

  9. 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 Campo Campo operación operandos comentarlos 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 Longitud instrucción ILC ante» sentencia 5 100 6 106 6 111 2 117 3 11* 3 122 2 126 2 1ZT 5 129 S 134 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.

  10. = Símbolo Valor Otra información : SUSANA :. 100 MARÍA 111 MARISA 125 CARMEN 129 h L « h '- Fig. 1 AAA - - 37 1 e ADD EAX IMMED32 05 5 4 ADD REG REG 01 2 19 AND EAX IMMED32 25 5 4 AND REG REG 21 2 19 = =L =J - = s - -5. Extractos de una tabla de códigos de operación en un ensamblador 80386. 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 deoperación operando operando hexadecimal la instrucción instrucción

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

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

  13. • ndy 402E ctrlél 6012 •d 34004 h«ni 5019 h,nrl S009 jico fiOIB Jim 4013 john 601* Itíirja - 4101 minín 5014 p«tr SOIS r«lnd 4004 ruud 4004 up« iooe Witbr.n 24414 K símbolos Tabla con k-1 entradas

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

  15. 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 EAX.P MOV EBX.Q MOV Q.EAX MOV P.EBX SWAP MACRO MOVEAX.P MOV EBX.Q MOV Q,EAX MOV P.EBX ENDM SWAP SWAP Ffc. 7-9. Código en lenguaje ensamblador del Intel 80386 para intercambiar P y O dos ve­ces, (a) Sin usar macro. (b) Usando una macro. 1. Encabezado de Macro —— nombre. 2. Texto que forma el cuerpo de la Macro. 3. Una instrucción de fin de Macro.

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

  17. 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 MACROS Vs. PROCEDIMIENTOS Llamada aprocedimiento ítem Llamada a macro Fl». 7-10. Comparación entre llamada* a macro y a procedimiento

  18. 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 MOV MOV 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.

  19. Implementación de Macros en un ensamblador Para que un ensamblador soporte Macros debe: a) Guardar las definiciones b) Expandir las llamadas

  20. Guardar definiciones a- Tabla de todos los nombres de las Macros y un apuntador a la definición. ——> Expandir Llamadas b- Cambio MOV EAX,&P1 ; MOV EBX, & P2 MOV & P2, EAX ; MOV & Pl.EBX ; retorno de carro & parámetros formales.

  21. Módulo Longitud Dirección de comienzo A 400 100 B 600 500 C 500 1100 D 300 1600

  22. wt Ufe A i / interrupción / ¡rtteíTupcilin SAlIUffl 100 SALTA A 200 100 SALTA A 300 . m ÍOO Móduto 2M i. objeto Módulo . objeto 300 MUEVE FAX A 300 MUEVE P AX M "*'" » 400 LLAMA A B 400 LLAMA A 600 - " » 11* Al DO HHQAK «XI SALTA A 300 800 SALTA A 800 ti W 000 700 000 Módulo tt 000 MUEVE Q AX b 900 MUEVE Q A X B • •00 900 1000 LLAMA A C 1000 LLAMA A 1100 Wh HE 1100 SALTA A 200 1100 SALTA A 1300 e 0 1200 1300 üiUAD MÍA A» Módulo Modulo - * w 1400 C 1400 C m HKIIAX so UMSAX 1500 LLAMA A D 1500 LLAMA A 1600 1800 SALTA A 200 1000 SALTA A 1800 m n 1700 Módulo • objeto LLWAD 1800 MUEVE S A X 1900 MUEVES AX 1900 1900 FTg. 7-14, (a) Los módulos obji Juntos forman un modulo de q ;io de U figura 7-13 después de haber sido cargados pero os módulos objeto después que el enlace se ha completado. irgfl absoluto listo para ejecutarse.

  23. Montaje (LINKING) y carga traducción completa Procedimiento fuente 1 Módulo objeto 1 \ Nú / Procedimiento — *• Módulo »_ lioador Modulo fuente 2 objeto 2 1 ' *• llmkerl * ejecutable >x \. .X Procedimiento fuente 3 / Módulo objetos Fig. 7-12. La generación de un módulo de ejecutable a partir de una colección de procedi­mientos traducidos independientemente requiere un ligador.

  24. Tareas realizadas por el programa ensamblador: *) Construye una tabla todos los módulos objeto y sus longitudes. *) Basada en esta tabla asigna una dirección de carga a cada módulo objeto. *) Busca todas las instrucciones que contenga una dirección de memoria y a c/u de ellas le suma una constante de rehubicación igual a la dirección de comienzo de módulo en el que están contenidas. *) Busca todas las instrucciones que hacen referencia a otros procedimientos e inserta la dirección de los mismos.

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

  26. D- Código ensamblado y constantes se carga en memoria. • ÚNICA parte del módulo que • E- Cuanto debe sumarse constante de rehubicación. • F-Fin del Modulo -Inf. Redundante para errores y excepción • - Dirección de inicio de la ejecución

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

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

More Related