Macros de Easy Code GoAsm (todos los proyectos)


Algunas macros de utilidad pueden ser usadas en los proyectos de Easy Code (visuales y clásicos) simplemente marcando la opción Macros de Easy Code en las Propiedades del proyecto. Sus nombres se colorean como palabras reservadas de Easy Code (vea el menú Configuración) y puede utilizarlas cuando lo desee a lo largo de todo el código. Estas macros, que se encuentran en el archivo ECMacros.asm de la subcarpeta Macros de Easy Code, tienen la sintaxis siguiente:

Color (byRed, byGreen, byBlue)

Los argumentos byRed, byGreen, byBlue deben ser valores de 8 bits (DB). Devuelve un color RGB (un valor de 32 bits or DD) en el registro Eax.

Ejemplo:

Color (0AH, 0BH, 0CH)

Devuelve 000C0B0AH en el registro Eax


HiByte (wValue)

El argumento wValue debe ser un valor de 16 bits (DW). Devuelve el byte alto (valor de 8 bits o DB) de wValue en el registro Al.

Ejemplo:

HiByte (0C0AH)

Devuelve 0CH en el registro Al


HiWord (dwValue)

El argumento dwValue debe ser un valor de 32 bits (DD). Devuelve la palabra alta (valor de 16 bits o DW) de dwValue en el registro Ax.

Ejemplo:

HiWord (000C000AH)

Devuelve 000CH en el registro Ax


LoByte (wValue)

El argumento wValue debe ser un valor de 16 bits (DD). Devuelve el byte bajo (valor de 8 bits o DB) de wValue en el registro Al.

Ejemplo:

LoByte (0C0AH)

Devuelve 0AH en el registro Al


LoWord (dwValue)

El argumento dwValue debe ser un valor de 32 bits (DD). Devuelve la palabra baja (valor de 16 bits o DW) de dwValue en el registro Ax.

Ejemplo:

LoWord (000C000AH)

Devuelve 000AH en el registro Ax


MakeWord (byLow, byHigh)

Los argumentos byLow y byHigh deben ser valores de 8 bits (DB). Devuelve el valor resultante de 16 bits (DW) en el registro Ax.

Ejemplo:

MakeWord (0CH, 0AH )

Devuelve 0A0CH en el registro Ax


MakeLong (wLow, wHigh)

Los argumentos wLow y wHigh deben ser valores de 16 bits (DW). Devuelve la doble palabra resultante (DD) en el registro Eax.

Ejemplo:

MakeLong (0A0BH, 0C0DH )

Devuelve 0C0D0A0BH en el registro Eax


Move (dwValue1, dwValue2)

Los argumentos dwValue1 y dwValue2 deben ser valores de 32 bits (DD), variables o posiciones de memoria.

Ejemplo:

Move (dwMemPos1, dwMemPos2)

Mueve el valor de la variable o posición de memoria indicada por dwMemPos2 a la variable o posición de memoria indicada por dwMemPos1.

Esta macro no devuelve ningún valor.


Return
(dwValue)

El argumento dwValue debe ser un valor de 32 bits (DD). Carga el valor dwValue en el regsitro Eax y vuelve de un procedimiento.

Ejemplo:

Return (TRUE)

Carga el registro Eax con el valor TRUE (1) y vuelve.


Date (lpszBuf)

El argumento lpszBuf debe ser la dirección efectiva de un buffer.

Ejemplo:

Date (lpszDate)

El buffer lpszDate se llenará con una cadena de texto ANSI que contendrá la fecha actual.


Now (lpszBuf)

El argumento lpszBuf debe ser la dirección efectiva de un buffer.

Ejemplo:

Now (lpszNow)

El buffer lpszNow se llenará con una cadena de texto ANSI que contendrá la fecha y hora actuales.


Time (lpszBuf)

El argumento lpszBuf debe ser la dirección efectiva de un buffer.

Ejemplo:

Time (lpszTime)

El buffer lpszTime se llenará con una cadena de texto ANSI que contendrá la hora actual.


Swap (dwValue1, dwValue2)

Los argumentos dwValue1 y dwValue2 deben ser valores de 32 bits.

Ejemplo:

Swap (dwValue1, dwValue2)

Intercambia los valores de las variables dwValue1 y dwValue2.


TEXT
("cadena")

El argumento "cadena" debe ser una cadena de texto entre comillas. Devuelve la dirección de una cadena de texto en formato ANSI o Unicode.

Ejemplo:

Invoke lstrlen, TEXT("Hola")

Eax devuelve 4, la longitud de la cadena en caracteres. Para la versión ANSI este valor se refiere a 4 bytes, mientras que para la versión Unicode se refiere a 4 palabras (DW).

La cadena devuelta por TEXT será ANSI o Unicode dependiendo de la opción Utilizar cadenas de texto Unicode en las Propiedades del proyecto.


OBSERVACIONES
: La macro TEXT siempre devuelve la dirección efectiva de la cadena indicada, por lo tanto, no debe utilizar NUNCA el operador Addr.

IMPORTANTE: Si no va a utilizar ninguna de estas macros (incluidas por defecto), o sus nombres crean algún conflicto con alguna variable, procedimiento o macro del proyecto, puede quitarlas desmarcando la opción correspondiente en las Propiedades del proyecto.