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

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

  • Upload
    tehya

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado. Generación Código. Específico GPU. Genérico. AST. !!ARBvp1.0. Arquitectura Ensamblador. Line:By0By1By2By3By4By5By6By7By8By9ByAByBByByDByEByF 011: 16 00 03 28 00 01 00 08 26 1b 6a 00 0f 1b 04 78 - PowerPoint PPT Presentation

Citation preview

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

Procesamiento de Datos IConcepto de Programa Almacenado

Nivel de Lenguaje Ensamblado

Page 2: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Arquitectura Ensamblador

!!ARBvp1.0PARAM 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ónCódigo

EspecíficoGPU

Genérico

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

Page 3: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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.

Page 4: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Compilador v/s Ensamblador

Un lenguaje de alto nivel utiliza un compiladorcompilador para traducir el código fuente a lenguaje de máquina (código objeto).

Un lenguaje de bajo nivel utiliza un ensambladorensamblador 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.

Page 5: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Editor

Ensamblador

Enlazador

prog.asmCrea un programa fuente en ensamblador (.ASM)

Ensamble

prog.lstprog.crt

prog.mapprog.obj

Enlace

Ensambla el programa fuente, crea un programa objeto (.OBJ)

Enlaza el programa objeto, crea un programa ejecutable

prog.exe

Page 6: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 7: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 8: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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)

Page 9: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Lenguaje ensamblado

A) ADD

SUB

MUL

DIV

B) Asigna a las direcciones nombres simbólicos

C) Solo se ejecuta en una familia de maquinas

24576

57344

28672

29184

Para la PDP_11

Lenguaje de maquina(octal o hexadecimal)

Page 10: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

 RESERVA 4 BYTE V INICIAL 2 RESERVA 4 BYTE V INICIAL 3 RESERVA 4 BYTE V INICIAL 4 RESERVA 4 BYTE V INICIAL 0

  

Page 11: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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"."Especifica direcciones y registros"."Permite explicar el funcionamiento del programa".

Instrucción en ensamblador

Page 12: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 13: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

El Proceso de EnsamblajeEnsambladores de 2 pasadas:1° Pasada: Construir la tabla de símbolos; que contiene etiquetas yvalores (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 etiquetaSUSANA: 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

 

operandos

 

comentarlos

 

 

5

 100

 6

 106

 6

 111

 2

 117

 3

 11*

 3

 122

 2

 126

 2

 1ZT

 5

 129

 S

 134

 

Longitud instrucción

 

ILC ante» sentencia

 

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.

Page 14: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

  

  

  

  

=

 Símbolo Valor Otra información

 :

 SUSANA :.

 

100

   MARÍA

 111 

  MARISA

 125

   CARME

N

 

129

   h

 L « 

Fig. 7-4. Tabla de simbolos para el programa de la figura 7-3.Código deCódigo de Primer Segundo operación Longitud de Clase deoperación operando operando hexadecimal la instrucción instrucción

  

  

  

  

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

 

Page 15: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 16: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 17: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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.

Page 18: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

MACROS: * Definición: Asignar un nombre a una porción de texto.

MOV EAX.PMOV EBX.QMOV O.EAXMOV P.EBXMOV EAX.PMOV EBX.QMOV Q.EAXMOV P.EBX

SWAP MACRO MOVEAX.P MOV EBX.Q MOV Q,EAX MOV P.EBX ENDM

SWAP SWAP

1. Encabezado de Macro —— nombre. 2. Texto que forma el cuerpo de la Macro. 3. Una instrucción de fin de Macro.

Page 19: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 20: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

 

 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». 7-10. Comparación entre llamada* a macro y a procedimiento

Page 21: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Macros con Parámetros: - Parámetros formales.

- Parámetros reales.

MOV EAX.PMOV EBX.QMOV Q.EAXMOV P.EBXMOV EAX.RMOV EBX.SMOV S.EAXMOV R.EBX

P1,P2EAX.P1EBX.P2P2.EAXP1.EBX

MOVMOVMOVMOVCHANCE P, Q CHANCE R, S

Ftg. 7-11. Secuencias casi idénticas de instrucciones, (a) Sin macro. (b) Con una macro .

CHANCE MACRO

(a) (b)

Page 22: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

 

  

  

  

  

  

  

A

B

C

D

E F 

Estructura de un módulo objeto   

A- Nombre, longitud, fechaB- 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 dereferencias externas Instrucciones de maquinarias y constantes Lista de rehubicación Fin del Módulo   

Page 23: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

Enlace dinámico

"Enlazar procedimientos compilados por separado en el momento en el que se llama por primera vez"

Page 24: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado

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

Page 25: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado
Page 26: Procesamiento de Datos I Concepto de Programa Almacenado Nivel de Lenguaje Ensamblado