LENGUAJE ENSAMBLADOR


El lenguaje ensamblador es el lenguaje de programación utilizado para escribir programas informáticos de bajo nivel, y constituye la representación más directa del Código máquina específico para cada arquitectura de computadoras legible por un programador. Aun hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware.

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 de programar en un lenguaje 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.
  • El lenguaje ensamblador es un código estructurado y gravitatorio desarrollado sobre un archivo de programación (.ASM), en el cual pueden existir varios programas, macros o rutinas que pueden ser llamados entre si.


Ventajas:
1.- 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 mas rápido.Velocidad de ejecución de los programas
Mayor control sobre el hardware de la computadora


2. 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 permite .

3. 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


Desventajas:

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 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.

Importancia:
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 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.


Usos y Aplicaciones de Lenguaje Ensamblador

Siempre ha habido debates sobre la utilidad y el desempeño del lenguaje ensamblador 
relativo a lenguajes de alto nivel. El lenguaje ensamblador tiene nichos específicos donde 
es importante. Pero, en general, los modernos compiladores de optimización para traducir 
lenguajes de alto nivel en código que puede correr tan rápidamente como el lenguaje 
ensamblador escrito a mano. La complejidad de los procesadores modernos y del 
subsistema de memoria hace la optimización efectiva cada vez más difícil para los 
compiladores, así como para los programadores en ensamblador. Adicionalmente, y para 
la consternación de los amantes de la eficiencia, el desempeño cada vez mayor del 
procesador ha significado que la mayoría de los CPU estén desocupados la mayor parte 
del tiempo, con retardos causados por embotellamientos predecibles tales como 
operaciones de entrada/salida y paginación de memoria. Esto ha hecho que la velocidad 
de ejecución cruda del código no sea un problema para muchos programadores.
Hay algunas situaciones en las cuales los profesionales pudieran elegir utilizar el lenguaje 

ensamblador. 
El uso del lenguaje ensamblador le permite al programador indicarle al computador 

exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de 
instrucciones. Aún cuando el código generado por los compiladores con opción de 
optimización es eficiente, la optimización manual puede resultar en una mejora sustancial 
en términos de rendimiento y consumo de memoria. El lenguaje ensamblador es 
usualmente utilizado en las siguientes circunstancias:
  * Mejorar la eficiencia de una rutina específica que se ha transformado en un cuello de 

botella
  * Obtener acceso a funciones de bajo nivel del procesador para realizar tareas que no 

son soportadas por los lenguajes de alto nivel
  * Escribir manejadores de dispositivos para comunicarse directamente con hardware 

especial tales como tarjetas de red
  * Trabajar en ambientes con recursos limitados puede requerir el uso del lenguaje 

ensamblador pues el código ejecutable puede ser menor que el generado por el compilador
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente
 en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. 


Comentarios

Entradas populares de este blog