El lenguaje
ensamblador, o assembler (assembly language en inglés), es un lenguaje de
programación de bajo nivel para los computadores, microprocesadores,
microcontroladores y otros circuitos integrados programables.
Este emplea nemónicos
para representar instrucciones y una serie de reglas que facilitan la
realización de programas. Los programas escritos con un lenguaje diferente al
que admite la maquina (binario) precisa de una traducción previa, para poderse
aplicar al decodificador de instrucciones.
Se
dice que existe una relación 1:1 entre el lenguaje de máquina y el lenguaje
ensamblador. Por tanto, El Lenguaje Ensamblador es directamente traducible al
Lenguaje de Máquina, y viceversa. Por otro lado, la computadora no entiende directamente
al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina.
Características:
ü El
código escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje
de bajo nivel.
ü El
lenguaje ensamblador es difícilmente portable, es decir, un código escrito para
un microprocesador, puede necesitar ser modificado, para poder ser usado en
otra máquina distinta. Al cambiar a una máquina con arquitectura diferente,
generalmente es necesario reescribirlo completamente.
ü Los
programas hechos por un programador experto en lenguaje ensamblador son
generalmente mucho más rápidos y consumen menos recursos del sistema (memoria
RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto
nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear
programas que se ejecutan más rápidamente y ocupan menos espacio que con
lenguajes de alto nivel.
ü Con
el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos de
código difíciles y/o muy ineficientes de programar en un lenguaje de alto
nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de
instrucciones del CPU que generalmente no están disponibles en los lenguajes de
alto nivel.
ü También
se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir
que se interrumpa durante su ejecución.
La
importancia del lenguaje ensamblador radica principalmente que se trabaja
directamente con el microprocesador; por lo cual se debe de conocer el
funcionamiento interno de este, tiene la ventaja de que en él se puede realizar
cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden
realizar. Otro punto sería que los programas en ensamblador ocupan menos
espacio en memoria.
Uso:
Fue
empleado principalmente en los inicios del desarrollo de software, cuando aún
no se contaba con los potentes lenguajes de alto nivel.
En
la actualidad se suele usar en ambientes académicos y de investigación cuando
se va a manipular hardware, se pretende conseguir un uso de recursos controlado
y reducido, o cuando se pretende conseguir unos altos rendimientos.
Ventajas
ü Velocidad:
Como trabaja directamente
con el microprocesador al ejecutar un programa, pues como este lenguaje es el
más cercano a la máquina la computadora lo procesa más rápido.
ü Eficiencia
de tamaño:
Un programa en
ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan
librerías y demás como son los lenguajes de alto nivel.
ü Flexibilidad:
Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en
el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en
una u otra forma limitantes para explotar al máximo los recursos de la máquina.
O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un
lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas
limitantes que no se lo permiten.
Desventajas
ü Tiempo de programación:
Como es un lenguaje de
bajo nivel requiere más instrucciones para realizar el mismo proceso, en
comparación con un lenguaje de alto nivel. Por otro lado, requiere de más
cuidado por parte del programador, pues es propenso a que los errores de lógica
se reflejen más fuertemente en la ejecución.
ü Programas fuente grandes:
Por las mismas razones
que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más
instrucciones primitivas para describir procesos equivalentes. Esto es una
desventaja porque dificulta el mantenimiento de los programas, y nuevamente
reduce la productividad de los programadores.
ü Peligro de afectar recursos
inesperadamente:
Que todo error que
podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos
de la máquina, programar en este lenguaje lo más común que pueda pasar es que
la máquina se bloquee o se reinicialice. Porque con este lenguaje es
perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas,
que normalmente no aparecen al usar un lenguaje de alto nivel.
ü Falta de portabilidad:
Porque para cada
máquina existe un lenguaje ensamblador; por ello, evidentemente no es una
selección apropiada de lenguaje cuando deseamos codificar en una máquina y
luego llevar los programas a otros sistemas operativos o modelos de
computadoras.
Fuentes:
Angulo,
José María (1992). Introducción al Software. Técnicas de Informática Hoy – Tomo
3 (pp. 47). Madrid: Paraninfo.
Davila,
Gustavo (2011). SlideShare - Lenguaje Ensamblador Básico.
http://es.slideshare.net/gustavodavila2309/lenguaje-ensamblador-basico
Universidad
Politécnica de Madrid. Lenguaje ensamblador 1953
http://www.etsisi.upm.es/museo_virtual/2g/lenguajeensamblador
Wikipedia
La Enciclopedia Libre. Lenguaje Ensamblador
http://es.wikipedia.org/wiki/Lenguaje_ensamblador
No hay comentarios :
Publicar un comentario