oregon ha scritto:
Non sono nel file originale macros.inc del masm?
Vedi caro Oregon,
MASM32 è un ambiente di sviluppo indipendente, in circolazione fin dagli anni Novanta, che si appoggia a MASM estendendone le capacità con una libreria, una collezione di macro, un editor avanzato con un sistema di scripting incorporato.
Si basa sull'idea di consentire ai programmatori intermedi e avanzati di usare macro "pesanti" che emulano i costrutti HLL e introducono perfino un controllo sui tipi, per scrivere quell'80% del codice acritico che fa il 20% del lavoro, lasciando poi la libertà di usare direttamente gli mnemonici e i più sordidi trucchi di riorganizzazione dei loop (unrolling, splitting, coiling, e tutto l'arsenale descritto nelle Bibbie dell'Assembly come il "Black Book" o "Inner Loops") nelle sezioni più critiche.
Il suo accoglimento nella comunità professionale dello sviluppo Assembly Intel è comunque da sempre piuttosto tiepido, sebbene nettamente superiore rispetto ad oggetti improponibili come GAS o NASM. Si tratta della tipica soluzione prona a creare piccoli partiti di entusiasti a oltranza e denigratori a tempo pieno, con una vasta maggioranza di professionisti indifferenti.
Personalmente, anche in onore al mio nickname ed alla fama di cultore dell'Assembly che giustamente mi accompagna da almeno tre decadi, lo uso da sempre, ma solo in ambito personale e per diletto: la mia lunga abitudine al rilevamento sistematico di tempi e metodi mi conferma che le ore/uomo spese per creare applicazioni con tale sistema e i risultati in termini di prestazioni e footprint su disco sono sempre comparabili entro piccole percentuali con quanto si ottiene usando la stessa quantità di Assembly inline o qualche modulo specifico in Assembly con compilatori "smart" come Digital Mars e Open Watcom.
Inoltre non si deve dimenticare che l'intero baraccone è pensato per creare e gestire applicazioni di dimensioni medio-grandi, perché ricalca e amplifica le idee alla base del sistema di macro nato funzionale alle esigenze interne di Microsoft in ambito DOS e poi Windows: ciò tuttavia non ha più alcun senso dal punto di vista applicativo nel mainstream, mentre per piccoli moduli o per la creazione di device drivers e per la programmazione di sistema l'utilità del sistema di macro è decisamente più limitata nel bilanciamento ingegneristico tra costi e benefici (manutenibilità, prestazioni, footprint, interoperabilità...) e comunque deve essere di volta in volta soggetta a vaglio prestazionale accurato, esattamente come un classico mix Assembly + C.