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.
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)
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.
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:
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.