martes, 9 de febrero de 2010

Como crear un compilador

Click aquí, para ver "como crear un compilador".

domingo, 7 de febrero de 2010

REGISTROS DE LA ALU

Los Registros son un medio de ayuda a las operaciones realizadas por la unidad de control y la unidad aritmética y lógica. Permiten almacenar información, temporalmente, para facilitar la manipulación de los datos por parte de la CPU.

Realizando una similitud con el resto del sistema informático, los registros son a la CPU como la memoria principal es a la computadora.

Los registros se dividen en tres grupos principales:

• Registros de Propósito General.

• Registros de Segmento de Memoria.

• Registros de Instrucciones.

Seguidamente se presenta una relación completa de los tres grupos de registros que contiene un microprocesador típico como puede ser el Intel 80386:

REGISTROS DE PROPOSITO GENERAL

(AX) Registro de Datos

(DX) Registro de Datos

(CX) Registro de Datos

(BX) Registro de Datos

(BP) Registro Puntero Base

(SI) Registro Índice Fuente

(DI) Registro Índice Destino

(SP) Registro Puntero de la Pila


REGISTROS DE SEGMENTO DE MEMORIA

(CS) Registro Segmento de Código

(SS) Registro Segmento de la Pila

(DS) Registro Segmento de Datos

(ES) Registro Segmento de Datos Extra

(DS) Registro Segmento de Datos Extra

(ES) Registro Segmento de Datos Extra


REGISTROS DE INSTRUCCIONES

(FL) Registro de «Flags» o también denominado registro de estado

(IP) Registro Puntero de Instrucción o también denominado registro Contador de Programa (PC)

De esta relación de registros los cuatro más importantes son:

• El Registro Puntero de Instrucciones.

El registro puntero de instrucciones o contador de programa indica el flujo de las instrucciones del proceso en realización, apuntando a la dirección de memoria en que se encuentra la instrucción a ejecutar.

Dado que las instrucciones de un programa se ejecutan de forma secuencial, el procesador incrementará en una unidad este registro cada vez que ejecute una instrucción, para que apunte a la siguiente.

La información que almacena este registro se puede modificar cuando una interrupción externa, o la propia ejecución del proceso en curso, provoque una alteración en la secuencia de operaciones. Esta alteración transferirá el control del sistema informático a otro proceso diferente al que está en ejecución.

EL REGISTRO ACUMULADOR

Es el Registro donde se almacenan los resultados obtenidos en las operaciones realizadas por la unidad aritmética y lógica.

Su importancia radica en las características de la información que almacena, ya que con su contenido se realizan todas las operaciones de cálculo que ha de ejecutar la unidad aritmética y lógica.

REGISTRO DE ESTADO

El Registro de Estado o registro de «flags» no es un solo registro propiamente dicho, ya que se compone de varios registros de menor tamaño; este tamaño puede ser incluso de un solo bit.

El registro de estado se utiliza para indicar cambios de estados y condiciones en los otros registros existentes en el sistema informático. Estos cambios en la situación de los demás registros se producen debido a las modificaciones del entorno a lo largo de la ejecución de los procesos realizados por el sistema informático

REGISTRO PUNTERO DE PILA

Este Registro almacena la dirección de la zona de la memoria donde está situada la parte superior de la pila.

La Pila es una zona de los registros de segmento de memoria que la unidad aritmética y lógica utiliza para almacenar temporalmente los datos que está manipulando. Cuando la cantidad de datos a manejar es demasiado grande u otras necesidades del proceso impiden que estos datos puedan almacenarse en los registros creados para ello se envían a la pila, donde se almacenan hasta que la unidad de control recupera la información para que la procese la unidad aritmética y lógica.

La ventaja de manejar una pila como almacén de información es que la información que se guarda en ella tiene que entrar y salir, obligatoriamente, por una sola dirección de memoria. Esto permite que la unidad de control no necesite conocer más que esa dirección para poder manejar los datos almacenados en la pila.

BIOS

BIOS significa Basic Input/oputput System, o lo que es lo mismo, Sistema Básico de Entrada y Salida... Con solo este dato, la mayoría de los usuarios se quedarán tal y como estaban, sino un poco más confusos.

Aclarando conceptos, se trata de un programa especial, que se pone en marcha al encenderse el PC, comprueba que todos los periféricos funcionan correctamente, verifica el tipo y el funcionamiento del disco duro, de la memoria, etc., busca nuevo hardware instalado, etc.

La BIOS no se carga como si de un sistema operativo se tratase, sino que viene ya incorporada a la placa base en un chip de memoria PROM. Actualmente, la mayoría de las BIOS pueden ser actualizadas por software, pero no pueden cambiarse. Para ello sería necesario cambiar físicamente el chip de la placa base o, más seguramente, la placa base por completo.

Existen muchos fabricantes de BIOS, pero el mercado está dominado prácticamente por Award, AMI y Phoenix, y lo más seguro es que nuestro PC tenga una BIOS de uno de estos fabricantes.

No todas las BIOS disponen de todas las opciones que se citan aquí. Las más antiguas carecen de muchas de ellas, mientras que otras, incluso modernas, están preparadas para trabajar de otro modo y no contemplan ciertas opciones.


COMO ENTRAR A LA BIOS:
Para hacer cualquier modificación tenemos que entrar en la Bios y lo hacemos de la siguiente forma

1. Pulsamos la tecla SUPR, nada mas encender el ordenador, si aún así no se consigue entrar en la Bios, probaremos manteniendo pulsada la tecla SUPR, desde que se enciende el ordenador hasta que aparezca el menú principal. En ella se encuentran los datos básicos que necesita el ordenador para funcionar correctamente.
2. Para acceder al menú STANDARD CMOS SETUP pulsamos la tecla ¿ mientras esté seleccionado en color rojo, (puede ser otro color).
3. Dependiendo del tipo de Bios, es posible que sea otra tecla, pero en todo caso al arrancar el ordenador nos lo indicará en la parte inferior de la pantalla.

TECLA SUPR - SUPRIMIR - O DELETE (Cuarto superior derecho).

En otro teclado quizás se llame DEL(o DELETE), o Suprimir.






Arquitectura de un CPU

Elementos esenciales que constituyen un sistema basado en CPU:
  • Reloj
  • CPU
    • Unidad Aritmética-Lógica (ALU).
    • Acumuladores y Registros.
    • Unidad de Control (UC).
  • Memoria
  • Unidad de entrada/salida
  • Buses del sistema


La maquina de Von

El diagrama de Von Neumann es el modelo que prácticamente utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos.

La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etc).

Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:

  1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.
  2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.
  3. Decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.
  4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda ‘tomar decisiones’, que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.
  5. Vuelve al paso 1.

Computadoras cuanticas

Usando una computadora cuántica de base óptica, un grupo de científicos en la Universidad de Illinois en Urbana-Champaign, liderado por el físico Paul Kwiat, ha presentado la primera demostración de "cálculo contrafactual", infiriendo información sobre una respuesta, aunque la computadora no ejecutó ningún programa.

Las computadoras cuánticas tienen el potencial de resolver ciertos tipos de problemas mucho más rápido que los ordenadores clásicos. Con ellas, se gana en velocidad y eficacia porque se pueden poner "bits" cuánticos como estados de superposición de uno y cero, de modo opuesto a los "bits" clásicos, que sólo pueden ser uno o cero. Además, la lógica detrás de la naturaleza coherente del procesamiento de la información cuántica a menudo se desvía del razonamiento intuitivo, conllevando algunos efectos sorprendentes.

Sin duda resulta raro para nuestra lógica convencional que el cálculo contrafactual (usar información contraria a lo que debe de haber pasado realmente) pueda encontrar una respuesta sin activar la computadora cuántica. Pero la naturaleza de la interrogación cuántica hace posible este asombroso hecho.

A veces llamada medición sin interacción, la interrogación cuántica es una técnica que hace uso de la dualidad onda-partícula (en este caso, de los fotones) para investigar una región del espacio sin realmente entrar en ella.






Con el uso de dos interferómetros ópticos acoplados, anidados dentro de un tercero, el equipo de Kwiat tuvo éxito en interrogar contrafactualmente un banco de datos de cuatro elementos usando el algoritmo de búsqueda.

Poniendo su fotón en un estado de superposición cuántico de ejecutar y no ejecutar el algoritmo de búsqueda, los investigadores obtuvieron información sobre la respuesta aún cuando el fotón no ejecutó dicho algoritmo. También mostraron teóricamente cómo obtener la respuesta sin ejecutar el algoritmo.

Con el uso hábil de divisores de haces de luz y de la interferencia constructiva y destructiva, los investigadores pueden poner cada fotón en un estado de superposición de tomar dos caminos. Aunque un fotón puede ocupar múltiples lugares simultáneamente, sólo puede hacer una aparición real en una única ubicación. Su presencia define su camino, y eso puede, en una manera muy extraña, negar la necesidad de ejecutar el algoritmo de búsqueda.

Aunque la computadora cuántica óptica de los investigadores no puede ser ampliada de tamaño, el uso de estos tipos de técnicas de interrogación hace viable reducir los errores en la computación cuántica.

sábado, 6 de febrero de 2010

Temario

Unidad 1 Introducción

1.1 Revision Modelo Von Newman

1.2 Del Problema al Programa Cargado

1.3 Lenguajes Formales

1.4 Editores

1.4.1 Editores De Caracter

1.4.2 Editores De Linea

1.4.3 Editores De Pantalla

1.5 Lenguajes De Programacion

1.5.1 Niveles Lenguajes De Programacion

(bajo, intermedio y alto)

1.5.2 Lenguajes De Programacion Tipos (interpretes y compiladores)

1.5.3 Comparacion Interpretes y Compiladores

Unidad 2 Ensamblador

2.1 Importancia Lenguaje Ensamblador

2.2 Manejo De Memoria

2.3 Direccionamiento Memoria

2.4 Formato De Un Programa

2.5 Proceso de Ensamble y Ligado

2.6 Instrucciones

2.6.1 Instrucciones Aritmeticas

2.6.2 Instrucciones De Comparacion

2.6.3 Instrucciones De Saltos

2.6.4 Instrucciones Para Stack

2.7 Macros Ensamblador

2.8 Interrupciones Ensamblador

Unidad 3 Compiladores Funciones

3.2 Fases de un Compilador

3.2.1 Fase de Analisis Compilador

3.2.1.1 Analisis Lexicografico Compilador

3.2.1.2 Analisis Sintactico Compilador

3.2.1.3 Analisis Semantico Compilador

3.2.2 Fase De Sintesis Compilador

3.2.2.1 Generacion Optimizacion Codigo Intermedio

3.2.2.2 Generacion Optimizacion Codigo Objeto

3.3 Diferencias entre Interpretes y Compiladores

Unidad 4 Ligadores y cargadores

4.1 Ligadores

4.1.1 Liga de bibliotecas de codigo objeto

4.1.2 Ligadores Estaticos

4.1.3 Ligadores Dinamicos

4.2 Cargadores

4.2.1 Carga Absoluta y Relocalizable

4.2.2 Cargadores Estaticos

4.2.3 Cargadores Dinamicos

4.3 Paso del control al sistema operativo