Lenguaje ensambador

Lenguaje Ensamblador 



INTRODUCCIÓN AL ENSAMBLADOR:
  El lenguaje ensamblador es el sistema alfanumérico para escribir código máquina mediante expresiones abreviadas (mnemotécnicos).   La compilación es más complicada porque incluye la conversión de operaciones matemáticas complejas, comandos de lenguaje natural o tipos de comandos complejos.   Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto nivel (LAN) puede ser compilado en distintas máquinas.   Es usado principalmente porque hay aplicaciones o programas que deben tratar directamente con los registros de la máquina, la memoria, dispositivos de E/S, etc.

LENGUAJE ENSAMBLADOR

• El único lenguaje que entienden los microcontroladores es el código máquina formada 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.



 El código fuente

• Está compuesto por una sucesión de líneas de texto.

• Cada línea puede estructurarse en hasta cuatro campos o columnas separados por uno o más espacios o tabulaciones entre sí.

Ø  Campo de etiquetas. Expresiones alfanuméricas escogidas por el usuario para identificar una determinada línea. Todas las etiquetas tienen asignado el valor de la posición de memoria en la que se encuentra el código al que acompañan.

Ø  Campo de código. Corresponde al nemónico de una instrucción, de una directiva o de una llamada a macro.

Ø  Campo de operandos y datos. Contiene los operandos que precisa el nemónico utilizado. Según el código, puede haber dos, uno o ningún operando.

Ø  Campo de comentarios. Dentro de una línea, todo lo que se encuentre a continuación de un punto y coma (;) será ignorado por el programa ensamblador y considerado como comentario.

Campo de código
Puede corresponder ese código a:

Ø  Instrucciones: son aquellos nemónicos que son convertidos por el ensamblador en código máquina que puede ejecutar el núcleo del microcontrolador. En la gama media (PIC16xxx) cada nemónico se convierte en una palabra en la memoria de programa.

Ø Directivas: Pseudoinstrucciones que controlan el proceso de ensamblado del programa, pero no son parte del código. Son indicaciones al programa ensamblador de cómo tiene que generar el código máquina.

Ø  Macros: Secuencia de nemónicos que pueden insertarse en el código fuente del ensamblador de una manera abreviada mediante una simple llamada.

Campo de Operandos y Datos:

• El ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeración decimal, hexadecimal, octal, binario y ASCII.

• Los nemónicos que tengan una constante como operando deberán incluirla respetando la sintaxis que se indica a continuación.



Aprendiendo a Programar

Pasos a dar para poder generar código fuente:

1.- Juego de Instrucciones

2.- Directivas y Macros

3.- Organización de la Memoria interna:
• Programa
• Datos

El juego de instrucciones:

• Es un juego reducido de 35 instrucciones muy simples. 

• La mayoría de las instrucciones se ejecuta en 4 ciclos de reloj; los saltos y llamadas a subprogramas se ejecutan en 8 (no se aprovecha pipeline)

• Todas las instrucciones tienen la misma longitud en la gama media: 14 bits.

• Por lo tanto el cálculo del tiempo de ejecución y de lo que ocupa un programa resulta simple.

• Las instrucciones se pueden clasificar atendiendo a dos criterios:
1.       Formato
2.       Funcionalidad

Ciclo de instrucción:
Pudiera haber un ciclo de instrucción de retardo si el resultado de ejecutar la instrucción anterior modifica el contenido del Contador de Programa (Ej: GOTO ó CALL). Esto implica suspender el entubado (pipelining) de las instrucciones durante un ciclo para que la instrucción a donde se salta se traiga a la CPU. 

PROCESOS PARA LA CREACIÓN DE UN PROGRAMA:

Para la creación de un programa es necesario seguir cinco pasos:

Diseño del algoritmo, codificación del mismo, su traducción a lenguaje máquina, la prueba del programa y la depuración.

En la etapa de diseño se plantea el problema a resolver y se propone la mejor solución, creando diagramas esquemáticos utilizados para el mejor planteamiento de la solución.

La codificación del programa consiste en escribir el programa en algún lenguaje de programación (en este caso en ensamblador 8086), tomando como base la solución propuesta en el paso anterior.

La traducción al lenguaje máquina es la creación del programa objeto, esto es, el programa escrito como una secuencia de ceros y unos que pueda ser interpretado por el procesador.

La prueba del programa consiste en verificar que el programa funcione sin errores, o sea, que haga lo que tiene que hacer.

La última etapa es la eliminación de las fallas detectadas en el programa durante la fase de prueba. La corrección de una falla normalmente requiere la repetición de los pasos comenzando desde el primero o el segundo. Para crear un programa en ensamblador utilizararemos el debugger, que se encuentra en cualquier PC con el sistema operativo MS-DOS, lo cual lo pone al alcance de cualquier usuario que tenga acceso a una máquina con estas características.
Debug solo puede crear archivos con extensión .EXE, y por las características de este tipo de programas no pueden ser mayores de 64 kb, además deben comenzar en el desplazamiento, offset, o dirección de memoria 0100Hh dentro del segmento específico.

El juego de instrucciones: SEGÚN SU FUNCIONALIDAD






Referencias:

Consultado en: uniovideo.es
Autor: Universidad de Ovideo
Año de publicación: s. f.
Título del artículo: TEMA 3 Ensamblador
Fecha de recuperación del documento: 10-06-2020

Comentarios

Entradas más populares de este blog

Lista de mnemónicos para lenguaje ensamblador

Programas en lenguaje ensamblador.

1.4 Aspectos matemáticos de la graficación (geometría fractal)