El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado
para escribir programas informáticos, y constituye la representación más
directa del código máquina específico para cada arquitectura de
microprocesador.
La importancia del lenguaje ensamblador es 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 el 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.
• El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.
• El lenguaje ensamblador expresa las instrucciones de una forma más
natural al hombre a la vez que muy cercana al microcontrolador, ya que
cada una de esas instrucciones se corresponde con otra en código
máquina.
• El lenguaje ensamblador trabaja con nemónicos, que son grupos de
caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar.
•La traducción de los nemónicos a código máquina entendible por el microcontrolador la lleva a cabo un programa ensamblador.
• El programa escrito en lenguaje ensamblador se denomina código fuente
(*.asm). El programa ensamblador proporciona a partir de este fichero el
correspondiente código máquina, que suele tener la extensión *.hex.
Ventajas y desventajas del lenguaje ensamblador
Ventajas
1. Como trabaja directamente con el microprocesador al ejecutar un
programa, pues como este lenguaje es el mas cercano a la máquina la
computadora lo procesa mas rápido.
2. 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.
3. 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 especificas que en un lenguaje de
alto nivel no se pueden llevar acabo porque tienen ciertas limitantes
que no se lo permite.
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 maquina, programar en este lenguaje
lo más común que pueda pasar es que la máquina se bloquee o se
reinicialize. 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.