3.- Estructura y Sintaxis

de un Lenguaje Ensamblador

 

   La Sintaxis de un lenguaje ensamblador es el conjunto de reglas que debe guardar el programa fuente y que estará compuesto por una serie de instrucciones, distinguiéndose cuatro campos: etiqueta, mnemotécnico, operando y comentario. El programa fuente deberá estar en un fichero ASCII que se genera con la ayuda de un programa editor, y no un procesador de textos, ya que estos generan códigos de control que los ensambladores son incapaces de interpretar. Un sencillo editor es el de MS-DOS. Las instrucciones en código máquina se codifican por campos, por lo que las instrucciones escritas en ensamblador se codificaran también por campos.

  LINEA DE INSTRUCCION EN ENSAMBLADOR

 

ETIQUETA

NEMOTECNICO

OPERANDO

COMENTARIO

SUBR

MOVE.L

D0, - (SP)    ;

Guarda D0

 

 

a) Campo de Etiqueta:

   Es un campo opcional que se utiliza para tener una referencia de las instrucciones. El programa ensamblador va traduciendo secuencialmente las instrucciones del programa fuente, guardando los códigos traducidos en posiciones consecutivas de memoria. Cuando encuentra una etiqueta en una línea de instrucción, el ensamblador guarda dicha etiqueta en una tabla especial en la memoria, junto con la dirección de memoria en la que se ha almacenado la instrucción que la acompaña, así si alguna instrucción tiene que referenciar a la instrucción etiquetada, bastará con que se escriban los caracteres de la etiqueta en el campo de operandos correspondiente. El programa ensamblador se encargará, cuando deba traducir esta instrucción, de buscar en la tabla la dirección en memoria de la instrucción correspondiente a la etiqueta.

Las ventajas del empleo de etiquetas son:

   Todos los ensambladores imponen algunas reglas y limitaciones en la utilización de etiquetas, siendo estas en el caso del Asm68k las siguientes:

Mayúsculas y minúsculas se consideran caracteres diferentes.

b) Campo de Nemotécnico:

   Se utiliza para escribir los códigos de instrucciones ejecutables y los códigos de pseudoinstrucciones o directivos de ensamblador.

   Las instrucciones ejecutables son los mnemotécnicos que constituyen las instrucciones del computador.

Las pseudoinstrucciones sirven para dar al ensamblador indicaciones como la dirección de memoria a partir de la cual debe ir guardando los códigos traducidos, realizar la reserva de las posiciones de memoria donde deben guardarse los resultados, etc. Las pseudoinstrucciones reciben este nombre porque sus mnemotécnicos no se convierten en código máquina, sino que son ejecutados directamente por el programa traductor.

 c) Campo de Operandos:

Se utiliza para indicar los valores concretos de los operandos que intervienen en la operación definida por el campo mnemotécnico. Dependiendo de la instrucción indicada en el campo mnemotécnico, habrá que definir el modo de direccionamiento, que estará determinado generalmente, mediante una combinación del código de operación y la información del campo de operandos.
 
    1. Números y constantes alfabéticas.
 
    Las cantidades colocadas en el campo de operandos pueden venir expresadas en diferentes bases de numeración, que son: binaria,  decimal y hexadecimal, y van determinados por un símbolo que se añade al valor numérico.

 

DECIMAL

por defecto

BINARIO

%

HEXADECIMAL

$

 
 
    2. Símbolos.

    El conjunto de caracteres alfanuméricos que se utiliza en el campo de los operandos para indicar una dirección recibe el nombre de símbolo. El programador podrá definir sus propios símbolos mediante dos procedimientos:


                            a) De forma implícita, mediante el empleo de etiquetas.
                            b) De forma explícita, mediante algunas pseudoinstrucciones.

    3. Expresiones.

    Una expresión es una combinación de números y/o símbolos unidos mediante operadores aritméticos o lógicos
 
 d) Campo de Comentarios:

Mediante el campo de comentarios se trata de hacer más comprensivo al programa, incluyendo el todos los puntos claves, definición de símbolos, reservas de memoria, propósito del programa, etc.