February 24, 2012

Lenguaje ensamblador.

En esta entrada les voy a hablar un poco sobre lo que es el lenguaje ensamblador, sus características y su relación con los sistemas integrados.

Lenguaje Máquina.

Primero que nada hay que saber lo que es el lenguaje máquina. El lenguaje máquina es un programa o una secuencia de instrucciones que viene dado por una secuencia de códigos binarios; también puede definirse como el sistema de códigos que pueden ser interpretados por un circuito programable, como por ejemplo un microprocesador o microcontrolador. Este lenguaje está compuesto por instrucciones que son las que le dicen que hacer a las computadora. Este lenguaje es diferente en cada computadora o arquitectura de la computadora.


Lenguaje Ensamblador

Es un lenguaje de programación de bajo nivel que utilizan las computadoras, microprocesadores, microcontroladores y otros circuitos programables. Este lenguaje implementa lo que viene a ser una representación simbólica del código del lenguaje máquina y otras constantes que son necesarias para programas en alguna arquitectura de computadora

Ventajas.
  • Como escribir lenguaje maquina es tedioso y susceptible a errores, el ensamblador facilita la tarea de no escribir lenguaje máquina.
  • Los programas realizados directamente en ensamblador se ejecutan más rápido y consumen menos recursos que los programas compilados desde un lenguaje de alto nivel.
  • Se puede controlar el tiempo de ejecución de una rutina, e impedir que se interrumpa.

Desventajas.
  • No es portable, es decir que depende de la arquitectura de la computadora, esto quiere decir que el lenguaje varía dependiendo de la computadora que se utilice.
  • Difícil de entender ya que es un lenguaje de bajo nivel, por lo tanto su estructura es parecida al lenguaje máquina.
  • El lenguaje ensamblador está definido por el fabricante de software, y se basa en los pasos de procesamiento, o también llamados instrucciones; en los registros del procesador, las posiciones de memoria y otras características del propio lenguaje.


Programa Ensamblador.

Es todo programa que traduce de lenguaje ensamblador a lenguaje maquina.


Antes de explicar el proceso que conlleva el traducir el lenguaje ensamblador es conveniente definir algunos conceptos.
  • Código fuente o programa fuente.
    Es un conjunto de líneas de texto, las cuales son las instrucciones que la computadora va a realizar para ejecutar lo dicho en el programa. Aquí se encuentran todos los programas en ensamblador y tienen la extensión *.asm, a partir de este código se realiza el código maquina el cual tiene la extensión *.hex.
  • Ensamblador o lenguaje ensamblador.
    Lenguaje de bajo nivel que traduce de ensamblador a lenguaje máquina.
  • Lenguaje en mnemónico.
    Son las listas de instrucciones y consisten en un conjunto de códigos simbólicos, los cuales corresponden a una instrucción en lenguaje máquina. Son grupos de caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar.
  • Objeto o Código objeto.
    Es el código que resulta de la compilación del código fuente. Este código consiste en lenguaje máquina o también llamado bytecode.
  • Linker.
    Para obtener un programa ejecutable se deben enlazar todos los archivos de código objeto con un programa que se llama enlazador o linker.


Entonces el proceso es el siguiente el programa o código fuente es tomado por el ensamblador, el cual realiza una traducción desde sentencias mnemónicas a lenguaje máquina, esto es un objeto y después mediante un linker se obtiene el ejecutable.

                                     


Ensambladores de alto nivel.

Estos ensambladores incorporan características de un lenguaje de alto nivel. Proporcionan todas las características del lenguaje máquina, pero también incluyen sentencias como IF, WHILE, FOR.

Además de proporcionar lo anterior también nos proporcionan el ocultamiento de información, abstracciones de datos como por ejemplo estructuras, uniones, clases y conjuntos; capacidad de llamar funciones usando una sintaxis similar a la de los lenguajes de alto nivel.



Elementos Básicos del lenguaje ensamblador
  • Etiquetas.
    Es una palabra que se utiliza para designar una línea o sección del programa, también puede ser utilizada para ir de una parte hacia esa etiqueta. Las etiquetas empiezan con una letra, un guión bajo “_”. Las etiquetas deben de ser escritas en la primera columna.
  • Instrucciones.
    Estas son todas las operaciones que realiza el microcontrolador. Las instrucciones dependen de cada PIC. Estas instrucciones se pueden encontrar en la hoja de datos de cada PIC.
  • Operandos.
    Son los registros, variables o constantes. En ellos se emplea la instrucción que se está ejecutando.
  • Directivas.
    Se utilizan para especificar el procesador que se está utilizando así como también su configuración, para asignar locaciones de memoria, etc. Son también instrucciones pero estas son propias del lenguaje ensamblador.
  • Comentarios.
    Al igual que en los lenguajes de alto nivel, se pueden agregar oraciones para que el programa sea más claro. Aquí los comentarios deben empezar con punto y coma “;”.



Lenguaje Ensamblador y Microcontroladores.

Actualmente los microcontroladores solo pueden ser manipulados mediante lenguaje ensamblador. Cada microcontrolador tiene su propio lenguaje ensamblador. Los PIC's de gama mediana utilizan un lenguaje ensamblador que está compuesto por 35 instrucciones

Para ejecutar un programa en un microcontrolador es necesario “traducirlo” a lenguaje maquina. Y esto es posible gracias a los programas ensambladores.

Las instrucciones en cualquier microcontrolador tienen dos componentes: el código de operación y los operandos. En el código de operación están la ordenes (en código) para que el dispositivo ejecute la acción indicada por esa instrucción. Los operandos vienen a ser los datos necesarios para realizar esa acción.

Ejemplos de operandos en un PIC de gama media
·        Una dirección de la memoria de datos (de 7 bits).
·        Una dirección de la memoria de programa (de 11 bits).
·        Un dato de 8 bits.
·        La indicación (con 1 bit) de cuál es el destino del resultado de la instrucción: si es un registro W o un registro de la memoria de datos.

En microcontroladores existen instrucciones que no necesitan ningún operando pero hay otras que necesitan más de un operando.






Fuentes.

1 comment: