Lenguaje assembler 2019.

En esta oportunidad, conocerás las macros.

Las macros nos permiten poder crear pequeñas funciones para ocuparlas repetidamente en nuestro código de programación asm.

Estas macros, son las únicas que permiten de igual manera, poder repetir labels, a diferencia de nuestro código, las label no se puede repetir, por lo tanto, generalmente, nosotros en estas colocamos signos de pregunta, antes o después.

Como de has dado cuenta, nosotros hemos seguido de a poco avanzando en este curso y estamos entrando ya a partes mas complicadas en la programación y las macros no están fuera de nuestro mundo.

Esta macros las utilizamos como subfunciones para realizar mínimas operaciones que nos ayudan a resolver una operación principal, dando los resultados que nosotros esperamos y así evitamos de estar repitiendo constantemente la escritura del código en nuestro programa.

Como ves, es una gran ayuda para todos nosotros y un alivio de cabeza al momento de programar.

Una de las cosas principales que debes saber, es que las macros, no se pueden usar en el editor assembler de atari, pero si son para mac65 y editores que aun en día nos permite generar código eficiente y mas rápido.

ESTRUCTURA DE LAS MACROS

Las macros tienen 3 partes en sus estructura:

1-. El encabezado o nombre de la macro

2-. Contenido de la macro

3-. Cierre de la macro.

Un ejemplo basico, será el siguiente, donde cambiaremos el fondo de color por el que deseamos.

;nombre de la macro

         .MACRO COLOR
              LDA #%2
              STA %1
         .ENDM

Si te fija en el ejemplo, primero colocamos el nombre de la macro llamada color y que esta lleva dos parametros, el primero es el valor que se cargará y el segundo en que posición de memoria se alojara para realizar el cambio y por ultimo la etiqueta de cierre con .ENDM.

ahora mejor ve el video donde explico de mejor manera las macros con un código mas completo.

 




Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *