El Solar Assembler


El Solar Assembler (SolAsm com a nom comú) és un assemblador multipas, d'alt nivell i macro assemblador que pot compilar codi de 16/32/64 bits, i que s'executa en Windows, Linux, MacOS i Solar_OS. El Solar Assembler està programat per Bogdan Valentin Ontanu i encara està en fase de desenvolupament, per tant, no està complet. Si us plau llegiu atentament el Manual del Solar Assembler i l'apartat OBSERVACIONS del final d'aquesta plana web per tal de familiaritzar-se amb la seva sintaxi i evitar molestos errors a l'hora de compilar.

L'Easy Code versions 2.02.0.0003 i posteriors també donen suport al SolAsm, tantmateix cal tenir en compte que alguns projectes no es poden generar amb el SolAsm perquè està en fase de desenvolupament, per tant, fins a la versió 0.36.76 (inclosa) els següents projectes NO es poden generar:

Drivers NT de 32 i 64 bits
Llibreries estàtiques de 32 i 64 bits

Per tal de mantenir l'estructura bàsica de carpetes dels altres ensambladors contemplats, us suggereixo que creeu una carpeta anomenada SolAsm a l'arrel d'un dels vostres discs durs (preferiblement que no sigui el disc de sistema C:). Llavors creeu una subcarpeta anomenada Bin i una altra anomenada Help dins de la carpeta SolAsm que acabeu de crear (aquestes són les dues subcarpetes que es necessiten, però podeu crear-ne més si ho desitgeu):

    SolAsm

Bin
Help
Ara descarregueu l'última versió del Solar Assembler Binary aquí i un cop hàgiu descomprimit el fitxer descarregat, localitzeu el fitxer sol_asm2.exe i copieu-lo a la subcarpeta \SolAsm\Bin que acabeu de crear. Llavors descarregueu la pàgina sol_asm_manual.htm i copieu-la a la subcarpeta \SolAsm\Help que acabeu de crear:

    SolAsm
Bin
sol_asm2.exe
Help
Solar Assembler Manual.htm

Atès que l'Easy Code (per projectes de 64 bits) i el MASM32 SDK (per projectes de 32 bits) proporcionen els fitxers include i llibreria necessaris, no us cal res més. Tingueu en compte que el MASM32 SDK només es necessita si penseu programar projectes visuals de 32 bits, altrament no cal que l'instal·leu.

Després de descarregar l'última versió de l'Easy Code, executeu-lo, aneu al menú Eines-->Configuració, feu clic a la pestanya Configuracions, seleccioneu l'ítem SolAsm al desplegable Configuració i seguiu atentament les instruccions del tòpic Menú Configuració - Configurant l'Easy Code. Després repetiu les mateixes pases anteriors, però seleccionant l'ítem SolAsm64 al desplegable Configuració. Si us plau vegeu també els comentaris relacionats amb el SOLASM a OBSERVACIONS IMPORTANTS.

NOTA: Tot funcionarà bé si les configuracions són correctes, per tant, si us plau preneu-vos el temps que calgui en llegir el tòpic Configuracions, per tal d'evitar problemes posteriors.

El SolAsm és un bon ensamblador però, com s'ha dit anteriorment, està en fase de desenvolupament, per tant, per a més informació, o per reportar errors generats pel SolAsm, és a dir, que no estiguin relacionats amb l'Easy Code, si us plau contacteu amb l'autor Bogdan Valentin Ontanu.

Els projectes que no es poden generar directament amb el SolAsm (drivers NT de 32/64 bits i llibreries estàtiques de 32/64 bits) es podrien generar manualment compilant el codi amb el SolAsm i fent servir un linker per als drivers, i un compilador de llibreries per a les llibreries estàtiques, però cal saber com fer-ho. D'altra banda, la capacitat del SolAsm per a generar drivers NT en el futur està determinada pel seu autor.

El SolAsm té el seu propi compilador de recursos, però a l'hora d'escriure aquest document només se'n poden crear els següents:

- Caixes de diàleg
- Controls
- Menús
NOTA: Aixó és aplicable a tots els tipus de projecte excepte als projectes visuals, que tenen tots els recursos disponibles perquè fan sevir un compilador de recursos extern (normalment l'rc.exe de Microsoft). D'altra banda, les caixes de diàleg no accepten les paraules clau CLASS (nom de classe), ni FONT (paràmetres de la font), ni EXSTYLE (estils extesos).

Els recursos del SolAsm es poden afegir manualment seguint la sintaxi indicada al manual del SolAsm (Chapter 8. Internal Resource compiler), però també es poden afegir d'una manera més fàcil i còmoda des de l'Editor de Recursos (recomanat). D'aquesta manera l'Easy Code crearà un fitxer de recursos amb extensió "rc" i se'n cuidarà de fer tota la feina. Si us plau vegeu l'exemple Classic dins la carpeta \EasyCode\Examples\SolAsm\x86\Classic (o \EasyCode\Examples\SolAsm\x64\Classic). En aquest exemple podreu veure com crear i assignar un menú i mostrar una caixa de diàleg. A més, també es pot veure com s'ha de crear manualment un recurs font perquè, com s'ha explicat abans, el compilador de recursos del SolAsm no accepta la paraula clau FONT per a les caixes de diàleg.

AVÍS: Els recursos de menú s'han de carregar amb la funció de l'API LoadMenuIndirect, mentre que els recusors de caixa de diàleg s'han de carregar amb la funció de l'API DialogBoxIndirectParam (si us plau vegeu l'exemple Classic).


OBSERVACIONS: Com s'ha dit abans, el SolAsm està en fase de desenvolupament, per tant, té alguns problemes que cal solucionar (compte amb els espais):

MAX_PATH + 1      MALAMENT, produeix un error
MAX_PATH+1        CORRECTE, no produeix cap error
Quan s'inicialitzen estructures:
{10 0 40 20 60}      MALAMENT, produeix un error
{ 10 0 40 20 60 }    CORRECTE, no produeix cap error
Un altre problema que afecta principalment als projectes visuals és que la directiva extern NO funciona amb las variables externes (SÍ que funciona amb els procediments externs). Això vol dir que en una finestra o mòdul no es pot fer referència a una variable que estigui en un altre mòdul.

NOTA: Atès que la directiva #ifndef no sempre funciona degudament, especialment amb les estructures, a partir de la versió 2.02.0.0011 de l'Easy Code algunes constants i gairebé totes les estructures han estat traslladades al fitxer windows.inc.

IMPORTANT: L'autor del SolAsm és conscient de totes aquestes incidències i les solucionarà tan aviat com sigui possible. Fins que no se solucionin, es recomana desactivar l'opció Corregeix la sintaxi (al menú Eines, pestanya Sintaxi) quan es treballi amb projectes SolAsm, per tal que el corrector no afegeixi o elimini espais que el SolAsm no accepta i que produeixen errors de compilació.