Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Concepto de programa almacenado. Nivel de lenguaje ensamblado




Enviado por Pablo Turmero



    Monografias.com
    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) (Gp:)
    !!ARBvp1.0 (Gp:) AST Tabla símbolos
    InsertarST(“arr”,5, ENV_PARAMETER) (Gp:)
    Generación Código (Gp:) Específico GPU (Gp:)
    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

    Monografias.com
    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.

    Monografias.com
    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.

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

    Monografias.com
    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

    Monografias.com
    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

    Monografias.com
    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)

    Monografias.com
    Lenguaje ensamblado 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)

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

    Monografias.com
    Instrucción en ensamblador (Gp:) a   (Gp:) b  
    (Gp:) c   (Gp:) 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

    Monografias.com
    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

    Monografias.com
    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: (Gp:) Campo   (Gp:) Campo
      (Gp:) Campo   (Gp:) MOV   (Gp:) EAX,  
    (Gp:) EAX-I   (Gp:) MOV   (Gp:) EBXJ   (Gp:) EBX.
    J   (Gp:) MOV   (Gp:) ECX.K   (Gp:) ECX« K
      (Gp:) IMUL   (Gp:) EAX.EAX   (Gp:) EAX –
    !•!   (Gp:) IMUL   (Gp:) EBX.EBX   (Gp:) EBX
    = J"J   (Gp:) IMUL   (Gp:) ECX.ECX   (Gp:) ECX =
    K«K   (Gp:) ADD   (Gp:) EAX, EBX   (Gp:)
    EAX-I"I + J*J   (Gp:) ADD   (Gp:) EAX.ECX   (Gp:)
    EAX .1*1 + JM +   (Gp:) MOV   (Gp:) N.EAX   (Gp:)
    N = 1*1 + J*J + K*   (Gp:) JMP   (Gp:) YA   (Gp:)
    SALTA A YA   (Gp:) operación   (Gp:) operandos
      (Gp:) comentarlos     (Gp:) 5   (Gp:) 100
      (Gp:) 6   (Gp:) 106   (Gp:) 6   (Gp:) 111
      (Gp:) 2   (Gp:) 117   (Gp:) 3   (Gp:) 11*
      (Gp:) 3   (Gp:) 122   (Gp:) 2   (Gp:) 126
      (Gp:) 2   (Gp:) 1ZT   (Gp:) 5   (Gp:) 129
      (Gp:) S   (Gp:) 134   (Gp:) Longitud
    instrucción   (Gp:) 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.

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

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

    Monografias.com
    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

    Monografias.com
    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.

    Monografias.com
    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 1. Encabezado de Macro
    —— nombre. 2. Texto que forma el cuerpo de la Macro.
    3. Una instrucción de fin de Macro.

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

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

    Monografias.com
    Macros con Parámetros: – Parámetros formales. –
    Parámetros reales. MOV EAX.P MOV EBX.Q MOV Q.EAX MOV P.EBX
    MOV EAX.R MOV EBX.S MOV S.EAX MOV R.EBX P1,P2 EAX.P1 EBX.P2
    P2.EAX P1.EBX MOV MOV MOV MOV CHANCE 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)

    Monografias.com
                     
                (Gp:) A B C D E F
      (Gp:) Estructura de un módulo objeto   (Gp:)
        (Gp:) 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.   (Gp:) Identificación  
    (Gp:) Tabla de Ptos de entrada   (Gp:) Tabla de referencias
    externas   (Gp:) Instrucciones de maquinarias y constantes
      (Gp:) Lista de rehubicación   (Gp:) Fin del
    Módulo   (Gp:)    

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

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

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter