4.- DIRECTIVOS DE ENSAMBLADOR

O PSEUDOINSTRUCCIONES

 

   Las pseudoinstrucciones dan al ensamblador indicaciones como la dirección de memoria a partir de la cual debe ir colocando los códigos traducidos, realizar la reserva de las posiciones de memoria donde deben guardarse los resultados, etc. Se utiliza el campo nemotécnico para transmitir esta información al programa traductor y darle las indicaciones necesarias para que éste pueda realizar la traducción correctamente. Por lo que debe reservarse un conjunto de mnemotécnicos para este fin los cuales no se convierten en código máquina, sino que son ejecutados directamente por el programa traductor.

 

         D I R E C T I V O                            D E S C R I P C I Ó N

etiq 

EQU

expr

Asigna el valor de la expresión expr a la etiqueta etiq.

 

ORG

n

Las instrucciones que van después empezarán en la dirección n de memoria.

etiq

DC.S

n

Inicializa el operando de tamaño S al valor n, guardándolo en la dirección simbólica etiq.

etiq

DS.S

n

Reserva espacio en memoria para n operandos, de tamaño S cada uno, y el primer operando se almacena en la dirección simbólica etiq.

 

END

 

Es obligatorio y debe ser la última sentencia del programa.

 

EXT

etiq

Indica al ensamblador que la dirección simbólica etiq está definida en otro módulo.

 

DEF

etiq

Indica al ensamblador que la dirección simbólica etiq puede ser utilizada por otros módulos.

 

IF 

ELSE 

ENDIF

cond

Acción condicional; si se verifica la condición cond, el ensamblador traduce las instrucciones comprendidas entre el IF y el ELSE, si no se verifica, traduce las instrucciones comprendidas entre el ELSE y el ENDIF.

 

NAME

nom

El nombre nom aparecerá en la cabecera de cada página de listado.

 

LIST

 

Indica al ensamblador que debe imprimir el programa fuente.

 

TABLE

 

Indica al ensamblador que debe imprimir la tabla de símbolos.

 

LALL

 

Indica al ensamblador que debe imprimir el programa fuente, el código máquina y la tabla de símbolos.

 

EVEN

 

Almacena la siguiente instrucción o asignación de memoria en una dirección par.

 
 

  1.- DEFINICIÓN DE SÍMBOLOS (EQU)

    Definir un símbolo consiste en asignar un valor como un número o una dirección de memoria a un nombre utilizando el directivo EQU.
Ejemplo:            IMPRESORA        EQU        $AB12
    Cuando el traductor lee este directivo, guarda la etiqueta y el valor indicado en el operando, en una zona de memoria denominada tabla de símbolos. Al encontrar un símbolo en el campo de operandos el traductor consultará esta tabla para ver el valor que le corresponde.

    2.- EL CONTADOR DE DIRECCIÓN DE ENSAMBLADO (ORG)

     El programa ensamblador utiliza un registro que le indica en que posición de memoria debe guardar una instrucción y que dirección debe asignar a una determinada etiqueta. Este registro se llama contador de dirección de ensamblado. Para poner el contenido de este contador a un valor determinado se usa una pseudoinstrucción denominada ORG.
Ejemplo:            ORG                        $1500  pone el número $1500 en el contador de dirección de ensamblado.
 

    3.- DEFINICIÓN DE CONSTANTES (DC)
 
    La sentencia DC.S permite definir una posición de memoria conteniendo un valor determinado o una serie de valores que se colocarán en orden a partir de la posición señalada.
 

    4.- DEFINICIÓN DE DATOS (DS)

    La sentencia DS,S reserva espacio de memoria sin especificar su contenido , y su longitud viene dada por el valor del operando , viéndose afectado este por el tamaño de la palabra como un factor multiplicador siendo por 1, por 2 o por 4 respectivamente.

     5.- ULTIMA SENTENCIA DEL PROGRAMA (END)

    La sintaxis de este directivo es muy simple ya que consta sólo de un campo de mnemotécnico, END. Este directivo únicamente se usa una vez en cada programa y será necesariamente la última instrucción.

    6.- ENLACE ENTRE PROGRAMAS (EXT, DEF)

    La programación modular consiste en dividir un programa complejo en módulos independientes de manera que cada uno de ellos realice una tarea concreta. Para permitir la traducción de dichos módulos se usa el directivo EXT que indica al ensamblador que los símbolos utilizados en el módulo objeto de la traducción están definidos en otro módulo diferente.
    En el módulo donde se definen los símbolos que pueden ser utilizados por otros módulos deberá indicarse con el directivo DEF.

     7.- ACCIONES CONDICIONALES (IF, ELSE, ENDIF)

    Estas pseudoinstrucciones funcionan como en un lenguaje de alto nivel, es decir si se verifica la condición, el  ensamblador traduce las instrucciones entre el IF y el ELSE y sino, entre el ELSE y el ENDIF.
 

    8.- EJECUCIÓN DE INFORMES (NAME, PAGE, LIST, TABLE, LALL)

    El programa ensamblador puede emitir una serie de informes, como mostrar un listado en lenguaje ensamblador y en código máquina, mostrar los errores sintácticos, etc. Los directivos que realizan estas funciones son los siguientes:
    - NAME: da la posibilidad de poner un identificador al programa, así cuando se liste aparecerá el nombre en la cabecera.
    - PAGE: indica al traductor que debe de saltar a una nueva página cuando esté imprimiendo el informe.
    - LIST: indica al traductor que imprima el programa fuente.
    - TABLE: indica al traductor que imprima la tabla de símbolos
    - LALL: indica al traductor que imprima el programa fuente, el código máquina y la tabla de símbolos.

     9.- ALMACENAMIENTO EN POSICIÓN PAR

     Existe una pseudoinstrucción, EVEN, que soluciona el problema de los microprocesadores de 16 bits, ya que estos sólo pueden utilizar datos de 2 bytes o más, comenzando siempre desde una posición par.