Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

5
12-9-2012 Jonatán Sánchez Cruz N° 09161287 Catedrático: L.I Mario Alberto Blanhir Ramírez Materia: Lenguajes Autómatas I INSTITUTO TECNOLÓGICO DE OAXACA REGISTROS DEL LENGUAJE ENSAMBLADOR Y TIPOS DE ANÁLISIS Ing. Sistemas Computacionales

Transcript of Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

Page 1: Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

12-9-2012

Jonatán Sánchez Cruz N° 09161287 Catedrático: L.I Mario Alberto

Blanhir Ramírez Materia: Lenguajes Autómatas I

INSTITUTO

TECNOLÓGICO

DE OAXACA

REGISTROS DEL LENGUAJE ENSAMBLADOR Y

TIPOS DE ANÁLISIS

Ing. Sistemas Computacionales

Page 2: Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

1

REGISTROS DE LENGUAJE ENSAMBLADOR

Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar

direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son

espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits

dependiendo del microprocesador que se emplee. Los registros son direccionables por

medio de una viñeta, que es una dirección de memoria. Los bits, por conveniencia, se

numeran de derecha a izquierda (15, 14, 13…. 3, 2, 1, 0), los registros están divididos en

seis grupos los cuales tienen un fin específico.

Los registros se dividen en:

• Registros de segmento

• Registros de apuntadores de instrucciones

• Registros apuntadores

• Registros de propósitos generales

• Registro índice

• Registro de bandera.

Registros de uso general

AX = Registro acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en las

operaciones aritméticas y lógicas, después de la operación arroja un resultado.

BX = Registro base, dividido en BH y BL.- Se utiliza en transferencias de datos entre la

memoria y el procesador.

CX = Registro contador, dividido en CH y CL.- Se utiliza como contador en

bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL).

DX= Registro de datos, dividido en DH y DL.- Se utiliza en operaciones de multiplicación

y división junto con Ax y en operaciones de entrada y salida de puertos, su mitad inferior

DL contiene el número de puertos.

Registros de segmento.

Un registro de segmento se utiliza para alinear en un limite de párrafo o dicho de otra forma

codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento

supone cuatro bits 0 a su derecha.Un registro de segmento tiene 16 bits de longitud y

facilita un área de memoria para direccionamientos conocidos como el segmento actual.

Los registros de segmento son: CS (código), DS (datos), SS (pila), ES , FS y GS.

Registro Apuntador de instrucciones.(IP)

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de

dirección de la siguiente instrucción que se ejecuta.

Page 3: Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

2

Registro índice. Los registros SI y DI están disponibles para direccionamientos indexados y

para sumas y restas. Que son las operaciones de punta.

Registro de bandera.

Los registros de banderas sirven parar indicar el estado actual de la máquina y el resultado

del procesamiento, Cuando algunas instrucciones piden comparaciones o cálculos

aritméticos cambian el estado de las banderas

ANALISIS LEXICO

El analizador léxico verifica que las palabras que conforman el programa fuente

pertenezcan al léxico del lenguaje fuente.

El analizador léxico lee los caracteres que conforman el programa fuente hasta formar una

palabra para luego ser clasificada bajo un tipo de token o tipo de palabra.

Los tipos de tokens comunes a la mayoría de los LP:

Palabras reservadas

Operadores aritméticos, relacionales, lógicos, especiales, etc.

identificadores

Constantes: numéricas, literales, lógicas, etc.

ANALISIS SINTACTICO

El analizador sintáctico verifica que el programa fuente cumpla con la sintaxis que el

lenguaje fuente tiene definido para sus programas.

El parser recibe los tokens que produce el scanner, para verificar que estén debidamente

combinados de tal manera que cumplan con las reglas sintácticas del lenguaje fuente que se

representan a través de una gramática.

El análisis de la cadena de tokens que se realiza mediante la gramática, y se representa

mediante un árbol sintáctico el cual constituye la salida de la fase del análisis sintáctico.

Page 4: Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

3

ANALISIS SEMANTICO

El analizador semántico verifica que se cumplan todas aquellas condiciones necesarias para

el correcto significado de cada parte del programa fuente.

Recibe como entrada el árbol sintáctico que produce el analizador sintáctico, para verificar

el cumplimiento de las reglas semánticas asociadas a cada parte del programa que se

aprecia en dicho árbol sintáctico.

Realiza comprobaciones estáticas, tales como: verificación e inferencia de tipos en

asignaciones y expresiones, declaración antes de uso, correcto uso de operadores, etc.

COMPILADORES DE UNA SOLA PASADA

Generan el código máquina a partir de una única lectura del código fuente, es decir examina

el código fuente una vez, generando el código o programa objeto.

Donde el análisis léxico, sintáctico, semántico y la generación de código se realizan en una

pasada, es decir, se explora el texto fuente sentencia a sentencia (o bloques de

sentencias) realizándose los tres análisis y la generación de código.

Ventajas

* Fue fácil de implementar

* Generaba poca actividad de entrada/salida

* El código de un procedimiento se compila en memoria y se escribe como una unidad a

la memoria secundaria

Desventajas

* Limitaciones en la calidad del código generado

* Mucha necesidad de memoria

COMPILADORES DE VARIAS PASADAS

En un compilador de varias pasadas, la tabla de símbolos (TS) se crea durante el análisis

léxico y sintáctico (pasada 1). En los compiladores modernos la TS se crea durante el

primer recorrido del árbol AST, una vez creado éste mediante el analizador sintáctico

(pasada 2). Cuando un compilador comienza a traducir un programa fuente, la TS está vacía

o contiene unas pocas entradas para las funciones incorporadas (las palabras reservadas

habitualmente son almacenadas en una tabla aparte y usada exclusivamente por el

analizador léxico).

El analizador léxico separa el programa fuente en tokens que compara con las palabras

reservadas. Si el token comparado no es una palabra reservada se asume que es un

Page 5: Registros Del Lenguaje Ensamblador Jonatan Sanchez Cruz Gpo ISB

4

identificador y durante el sintáctico (fase sintáctica) se añade a ella. Si el token comparado

se encuentra en la TS, el analizador sintáctico accede directamente al índice que identifica a

dicho identificador reconocido anteriormente, en caso contrario, el analizador sintáctico

introduce dicho símbolo en la TS.

Según avanza la compilación, sólo se añade una entrada para cada identificador nuevo, pero

se explora la Tabla una vez por cada nueva aparición de un identificador.