Professional Documents
Culture Documents
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
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.