3. Introducción:
Tenga en cuenta que la primera
computadora electrónica
programable (ENIAC 1946) se
programaba al cablear los circuitos
de ésta. Puesto que este método se
volvió demasiado fastidioso para
aplicaciones prácticas, en el inicio
de la evolución de los sistemas de
cómputo comenzaron a aparecer
lenguajes de programación para
poder controlarlas.
4. El primero de estos lenguajes fue, el Lenguaje
Máquina, que se formó utilizando claves binarias que
representaban su código de operación (OPCODE) y se
almacenaban en la memoria de la computadora como
grupos de instrucciones llamados programas.
5. El lenguaje ensamblador
es una variante legible para el
ser humano de el lenguaje
maquina, es la mejor manera
de un programador para
comunicarse con su
computadora.
Este lenguaje le da la
facilidad y las herramientas
necesarias para que el
programador tome el control
de todo lo que la computadora
puede realizar físicamente.
6. Existen varias razones que hacen del lenguaje ensamblador el
mejor para la relación del programador con su computadora, algunas de
ellas son:
•Conocemos a detalle como trabaja el microprocesador.
• Nos brinda la oportunidad de conocer mas a fondo el funcionamiento de la
computadora, lo cual nos es útil con el hardware y Software ya que
sabemos el como y porque realiza las cosas.
•Tenemos el control total de nuestra computadora.
•Los programas con mas rápidos, compactos y tienen mayor capacidad que
los creados en otros lenguajes.
•Se puede optimizar al máximo sus programas ya sea en tamaño como en
velocidad de ejecución.
•Desarrolla habilidades de programación avanzadas.
7. A continuación se presenta una tabla que indica los tamaños
de los archivos creados por los diferentes compiladores. El
programa muestra desplegará la siguiente cadena: “¡Hola, que
tal!”
Lenguaje Fuente Objeto Ejecutable (.EXE)
BASIC 27 bytes 651 bytes 12 814 bytes
CLIPPER 22 bytes 572 bytes 159 178 bytes
ENSAMBLADOR 162 bytes 169 bytes 543 bytes
No se están comparando las velocidades de ejecución,
aunque si tomamos en cuenta el tamaño del programa
ejecutable, es obvio que mientras más grande sea éste, su
ejecución será más tardada debido al tiempo necesario para
cargarlo.
8. Ahora que se ha visto las diferencias entre los lenguajes,
también es justo señalar los problemas de trabajar con el
lenguaje ensamblador:
•Una instrucción mal interpretada o un error de lógica en el
programa puede causar un caos, a tal grado que será
necesario apagar y encender de nuevo la computadora.
•La insuficiencia de conocimientos sobre el funcionamiento
interno de la computadora puede causar efectos
impredecibles.
•Es necesario ajustarse a una convención respecto al uso de
interrupciones.
•Se debe tener presente que un programa se puede volverse
más complejo conforme se le agregan rutinas o funciones
adicionales.
9. La mayoría de las aplicaciones que se
ejecutan en una computadora han sido
desarrolladas empleando un lenguaje de
alto nivel.
En contraposición, el lenguaje
ensamblador se dirige a tipos de
proyectos y situaciones mucho más
concretos y específicos.
En muchos casos este lenguaje se
utiliza no para desarrollar una aplicación
completa, sino para mejorar la velocidad
de ciertas partes de un programa o bien
realizar operaciones que, desde el
lenguaje de alto nivel, no estén
accesibles de otra forma.
10. El ensamblador resulta
indispensable cuando se desea escribir
programas que controlen la
entrada/salida de la computadora,
agregar nuevas interfaces de
entrada/salida, escribir rutinas
optimizadas de un procedimiento en
especial, escribir rutinas que
aprovechen y maximicen el uso del
hardware, y en general realizar
cualquier tarea que no puedan llevar a
cabo los demás lenguajes de
programación. El ensamblador resulta
ser muy útil en el área de electrónica y
en el área de sistemas computacionales
y proporciona mejores oportunidades
de empleo en la industria.
11. Entre los ensambladores que existen mencionamos los
siguientes:
ENSAMBLADOR SISTEMA FUENTE LICENCIA X86-64 DESARROLLO
OPERATIVO ABIERTA ACTIVO
Devel Software Windows, No Libre Si Si
Assembler Linux, Unix.
FASM Windows, Si BSD Si Si
DOS, Linux,
Unix.
POASM Windows, No Libre Si Si
Windows
Mobile.
TCCASM Windows, Si LGPL Si Si
Unix