martes, 31 de mayo de 2016

Lenguaje Ensamblador.

Lenguaje Ensamblador.

El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. 

El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. 

La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.

Historia.

El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0. 

En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. 

En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). 

Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.

El primer compilador de FORTRAN tardó 18 años persona en realizarse y era muy sencillo.

El primer compilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas.
Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete.

Componentes.

Los elementos básicos del lenguaje ensamblador son:
  • Etiquetas
  • Instrucciones
  • Operandos
  • Directivas
  • Comentarios

Etiquetas.

Una etiqueta es una palabra utilizada para designar alguna línea o sección del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta.

Es importante que las etiquetas empiecen con una letra o con un guión bajo "_". La longitud de una etiqueta puede ser de hasta 32 caracteres y como ya se dijo se deben escribir en la primer columna.

Instrucciones.

Las instrucciones son las operaciones  que realiza el microcontrolador, así que estas ya están definidas para cada familia de  PIC.

MicrocontroladorPIC 

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico).




Operandos.

Son los elementos que emplea la instrucción que se está ejecutando. Usualmente los operandos son los registros, las variables o las constantes.

Directivas.

  • Las directivas son similares a las instrucciones, pero a diferencia de  estas las directivas son propias del lenguaje ensamblador e independientes del microcontrolador que se utilice. 
  • Las directivas representan algunas características del lenguaje ensamblador, se utilizan para especificar el procesador empleado así como la configuración de este, también para asignar locaciones de memoria.

Comentarios.

Los comentarios son las palabras, frases y oraciones que se pueden escribir en el código para hacer el programa más claro y legible, o solo para recordar. 

Los comentarios se pueden escribir en cualquier parte del código pero siempre deben empezar con punto y coma ";".

Software editores.

Un programador escribe el programa origen en  lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de  producir una salida de texto en ASCII. Una vez que el código origen ha sido escrito, el archivo origen es  ensamblado mediante su procesamiento a través de algún ensamblador.

Software reglas de programación.

Para la programación se utiliza una cierta tabulación que se debe respetar, además utilizar una tabulación adecuada hace los programas más claros y le gibles. 

Las etiquetas 

Se escriben en la primer columna de cualquier línea, las instrucciones y directivas en la  segunda y por último, en la tercer columna, los operandos. 

Los comentarios 

Se pueden escribir en cualquier parte del programa.

Software ENS2001


Software MASM



Software TAST





Software MASM Y TLINK

El Turbo Assembler (TASM) un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. 

El enlazador o linkador LINK permite convertir el código objeto generado por TASM en archivo ejecutable de tipo EXE*.

*empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador.

Registros.

Se trata de una serie de "variables", que contienen información que puede ser cambiada.

REGISTROS IP Y CS.

El registro CS es una variable de un tamaño de dos bytes. Contiene el Segmento actual en que se encuentra el programa.


El registro IP es la variable, de dos bytes también, que contiene el Offset actual. Esto significa, el ordenador va interpretando las secuencias de bytes, pero necesita "algo" que le indique donde tiene que leer.

COMBINACION DE REGISTROS IP Y CS

La combinación CS:IP contiene la dirección en la que el ordenador está interpretando información en el momento. Indica la dirección de la próxima instrucción que se va a ejecutar.


El registro DS y el registro ES también sirven para guardar direcciones de Segmentos, y también son variables de dos bytes, pueden ser utilizados para por ejemplo mover datos en memoria, imprimir cadenas, etc. Son "punteros", que apuntan a cierta zona de memoria. El registro SS apunta a la pila, y el SP es el que contiene el offset de la pila.

Instrucciones.

Se pueden clasificar en los siguientes grupos:


  • De Transferencia. 
  • Aritméticos. 
  • Lógicos. 
  • De salto.
















No hay comentarios:

Publicar un comentario