You are on page 1of 1

MACROS

Esta función es usada para definir nuevas instrucciones que se encargaran de hacer más corto nuestro programa, además
este emplea las instrucciones ya definidas para crear otras nuevas.
Ventajas:
- Hacen más corta la programación, si es que se requieren de partes del código de programa de forma continua.
- Permite la inserción de variables con quien operar
Desventajas
- No permiten la instrucción salto condicionado a través de ellos, ya que al momento de ser llamados por lo general
solo están expresados en una línea de programación, pero internamente están constituidos por varias líneas y
por ende una instrucción de salto se ve afectado por esta última condición.
Sintaxis
<Nombre de la función> MACRO <Variables>
Instrucción 1
Instrucción 2 Estas instrucciones usan las variables definidas en la macro
Instrucción 3

ENDM

EJEMPLO
Definir una instrucción de suma de dos registros de forma directa:
Solución
Del set de 35 instrucciones solo vemos que son posibles dos tipos de suma:
- Suma de una constante con el registro de trabajo “w”
- Suma del registro “w” con un registro “f”
Si deseáramos sumar dos registros en particular tendríamos que efectuar de la siguiente forma:
Previamente tendremos que definir en la memoria tres posiciones S_1, S_2 Y SUMA:
Sin usar macros
MOVFW S_1 ; movemos el valor de S_1 al registro de trabajo
ADDWF S_2,0 ; sumanos el contenido del registro de trabajo con el registro S_2, y lo guardamos en el registro “w”
MOVWF SUMA ; cargamos el registro “SUMA” con el valor del registro “w”
La operación es relativamente fácil, pero que pasaría si esta se requeriría de forma constate o con otros registros diferentes,
allí entra la ventaja de usar las macros:
Empelando macros
Definiendo macros:
ADDFF MACRO F1,F2
MOVFW F1
ADDWF F2,0
ENDM

Finalmente cada vez que se requiera sumar dos registros se hará:


Llamando a la macro:
ADDFF S_1, S_2
MOVWF SUMA

Como se puede observar es el mismo mecanismo solo que se ha puesto todo en una nueva instrucción que esta defina
con sus parámetros de entrada y salida.

You might also like