El Solar Assembler


El Solar Assembler (SolAsm como nombre común) es un ensamblador multipaso, de alto nivel y macro ensamblador que puede compilar código de 16/32/64 bits, y que se ejecuta en Windows, Linux, MacOS y Solar_OS. El Solar Assembler está programado por Bogdan Valentin Ontanu y todavía está en fase de desarrollo, por consiguiente, no está completo. Por favor lea atentamente el Manual del Solar Assembler y el apartado OBSERVACIONES del final de esta página para familiarizarse con su sintaxis y evitar molestos errores a la hora de compilar.

Easy Code versiones 2.02.0.0003 y posteriores también dan soporte al SolAsm, sin embargo hay que tener presente que algunos proyectos no se pueden generar con SolAsm porque está en fase de desarrollo, por lo tanto, hasta la versión 0.36.76 (incluida) los siguientes proyectos NO se pueden generar:

Drivers NT de 32 y 64 bits
Librerías estáticas de 32 y 64 bits

Con el fin de mantener la estructura básica de carpetas de los otros ensambladores contemplados, le sugiero que cree una carpeta llamada SolAsm en la raíz de uno de sus discos duros (preferiblemente que no sea el disco de sistema C:). Entonces cree una subcarpeta llamada Bin y otra llamada Help dentro de la carpeta SolAsm que acaba de crear (éstas son las dos subcarpetas que se necesitan, pero puede crear más si lo desea):

    SolAsm

Bin
Help
Ahora descargue la última versión del Solar Assembler Binary aquí y una vez haya descomprimido el archivo descargado, localice el archivo sol_asm2.exe y cópielo a la subcarpeta \SolAsm\Bin que acaba de crear. Entonces descargue la página sol_asm_manual.htm y cópiela a la subcarpeta \SolAsm\Help que acaba de crear:

    SolAsm
Bin
sol_asm2.exe
Help
Solar Assembler Manual.htm

Puesto que Easy Code (para proyectos de 64 bits) y el MASM32 SDK (para proyectos de 32 bits) proporcionan los archivos include y librería necesarios, no hace falta nada más. Tenga en cuenta que el MASM32 SDK solamente se necessita si piensa programar proyectos visuales de 32 bits, de lo contrario no necesita instalarlo.

Después de descargar la última versión de Easy Code, ejecútelo, vaya al menú Herramientas-->Configuración, haga clic en la pestanya Configuraciones, seleccione el ítem SolAsm en el desplegable Configuración y siga atentamente las instrucciones del tópico Menú Configuración - Configurando Easy Code. Después repita los mismos pasos anteriores, pero seleccionando el ítem SolAsm64 en el desplegable Configuración. Por favor vea también los comentarios relacionados con el SOLASM en OBSERVACIONES IMPORTANTES.

NOTA: Todo funcionará bien si las configuraciones son correctas, por lo tanto, por favor tómese el tiempo que sea necesario en leer el tópico Configuraciones, para evitar problemas posteriores.

El SolAsm es un buen ensamblador pero, como se ha dicho anteriormente, está en fase de desarrollo, por lo tanto, para más información, o para reportar errores generados por SolAsm, es decir, que no estén relacionados con Easy Code, por favor contacte con el autor Bogdan Valentin Ontanu.

Los proyectos que no se pueden generar directamente con el SolAsm (drivers NT de 32/64 bits y librerías estáticas de 32/64 bits) se podrían generar manualmente compilando el código con SolAsm y usando un linker para los drivers, y un compilador de librerías para las librerías estáticas, aunque hay que saber como hacerlo. Por otra parte, la capacidad del SolAsm para generar drivers NT en el futuro está determinada por su autor.

El SolAsm tiene su propio compilador de recursos, pero a la hora de escribir este documento solamente puede crear los recursos siguientes:

- Cajas de diálogo
- Controles
- Menús
NOTA: Esto es aplicable a todos los tipos de proyecto excepto a los proyectos visuales, que tienen todos los recursos disponibles porque usan un compilador de recursos externo (normalmente el rc.exe de Microsoft). Por otra parte, las cajas de diálogo no acceptan las palabras clave CLASS (nombre de clase), ni FONT (parámetros de la fuente), ni EXSTYLE (estilos extendidos).

Los recursos de SolAsm se pueden agregar manualmente siguiendo la sintaxis indicada en el manual del SolAsm (Chapter 8. Internal Resource compiler), pero también se pueden agregar de una manera más fácil y cómoda desde el Editor de Recursos (recomendado). De este modo Easy Code creará un archivo con extensión "rc" y se cuidará de hacer todo el trabajo. Por favor vea el ejemplo Classic en la carpeta \EasyCode\Examples\SolAsm\x86\Classic (o \EasyCode\Examples\SolAsm\x64\Classic). En ese ejemplo podrá ver como crear y asignar un menú y mostrar una caja de diálogo. Además, también verá como debe crearse manualmente un recurso fuente porque, como se ha explicado anteriormente, el compilador de recursos del SolAsm no accepta la palabra clave FONT para las cajas de diálogo.

AVISO: Los recursos de menú deben cargarse con la función de la API LoadMenuIndirect, mientras que los recursos de caja de diálogo deben cargarse con la función de la API DialogBoxIndirectParam (por favor vea el ejemplo Classic).


OBSERVACIONES: Como se ha dicho anteriormente, el Solar Assembler está en fase de desarrollo, por consiguiente, tiene algunos problemas que deben ser solucionados (cuidado con los espacios):

MAX_PATH + 1      MAL,  produce un error
MAX_PATH+1        BIEN, no produce ningún error
Cuando se inicializan estructuras:
{10 0 40 20 60}      MAL,  produce un error
{ 10 0 40 20 60 }    BIEN, no produce ningún error
Otro problema que afecta principalmente a los proyectos visuales es que la directiva extern NO funciona con las variables externas (SÍ que funciona con los procedimientos externos). Esto significa que en una ventana o módulo no se puede referenciar una variable que esté en otro módulo.

NOTA: Puesto que la directiva #ifndef no siempre funciona debidamente, especialmente con las estructuras, a partir de la versión 2.02.0.0011 de Easy Code algunas constantes y casi todas las estructuras han sido trasladadas al archivo windows.inc.

IMPORTANTE: El autor del SolAsm es consciente de todas estas incidencias y las solucionará tan pronto como sea possible. Hasta que no se solucionen, se recomienda desactivar la opción Corregir la sintaxis (en el menú Herramientas, pestaña Sintaxis) cuando se trabaje con proyectos SolAsm, para que el corrector no agregue o elimine espacios que el SolAsm no accepta y que producen errores de compilación.