viernes, 14 de septiembre de 2012

Historia del Lenguaje Ensamblador

Para poder programar en Bajo nivel(Ensamblador) debemos conocer desde lo básico hasta lo mas complicado.
La primera computadora programable fue la ENIAC en 1946 pero se programaba mediante circuitos complejos que no eran nada funcionales. Después se empezó a utilizar el lenguaje maquina que son claves binaras que representan un CÓDIGO DE OPERACIÓN(OPCODE). Estas se almacenan en grupos de instrucciones llamados PROGRAMAS.

ENIAC
Esto llego a ser muy complicado debido a que se debían aprender series enormes de códigos binarios para realizar operaciones. Por ejemplo:
Para realizar la suma se tenia una instrucción binaria muy similar a "00101010010100101". Es por eso que se complicaba demasiado manejar este tipo de programación.

Actualmente manejamos lenguajes de Alto nivel que son relativamente sencillos a comparación con el lenguaje maquina. Pero no se llego al alto nivel desde el código binario, existe un lenguaje que nació para facilitar el binary code. Este se llama "LENGUAJE ENSAMBLADOR".

QUE ES EL LENGUAJE ENSAMBLADOR?
Es la primera abstracción del lenguaje maquina , consiste en asociar los OPCODE con palabras clave que sean fáciles de recordar para el programador.
A estas palabras clave se les llama MNEMÓNICOS.
Un programa ensamblador traduce el o convierte el codigo fuente(ensamblador) a codigo objeto(lenguaje maquina).
La computadora UNIVAC fue la primera en usar ensamblador.
UNIVAC
Que necesito saber antes de usar lenguaje ensamblador?(OJO)
-Conocer a detalle como traba el micro.
-conocer a detalle como opera la computadora(Memoria, discos duros, dispositivos E/S)
-Lógica computacional.
-Manejar algún lenguaje de alto nivel(C, C++, C#, Pascal, Perl, VB, JAVA, etc...)
-Manejo del sistema binario y hexadecimal(suma, resta, multiplicación, división).

Que ventajas ofrece el lenguaje ensamblador?
-Optimizan al máximo los programas en tamaño y velocidad.
-Rápidos y compactos.
-No genera código predefinido como el alto nivel.
-No se necesita capacidades de memoria ni computadoras sofisticadas.
-Nos da habilidades de programación avanzada.

Que desventajas tiene?(OJO)
-Una instrucción mal interpetada puede generar un caos en nuestro equipo al grado de tener que reiniciar nuestra maquina.
-La insuficiencia de conocimientos básicos y de programación causa efectos impredecibles.
-Se vuelve mas complejo conforme se agregan rutinas y funciones.
-Se pueden usar con lenguajes de alto nivel(PROGRAMACIÓN HÍBRIDA).

Aplicaciones actuales.
Sistemas embebidos: Impresoras, cámaras, autos, armas, juguetes.
Tiempo real: Control de robots, manufactura, adquisición de datos.
Transporte: Barcos, aviones, sondas espaciales.
Entretenimiento: Graficacion, multimedia, videojuegos.
DSP: Procesador digital de señal para operaciones a alta velocidad.
Procesamiento de señales, voz e imagen:
-aparatos médicos
-aparatos para datos sísmicos
-reproductores de audio
-modems
-cámaras digitales.

En el próximo post veremos toda la información relevante de los Microprocesadores Intel 8088/8086

7 comentarios: