Masm32 macros

di il
11 risposte

Masm32 macros

Buongiorno a tutti,

Ho trovato per caso questo forum simpatico. Vivo vicino a Roma e sono programmatore (hobbista) da tanti anni. La mia specialità sono i macros con Masm/JWasm, specialmente con Masm32, tipo questo:
include \masm32\include\masm32rt.inc

.code
start:	MsgBox 0, "Ciao mondo", "Macro semplice:", MB_OK
	exit

end start
Quindi se qc ha una domanda sui macros, saro' pronto a rispondere. Per il momento studiero' un po' i temi trattati qui.

11 Risposte

  • Re: Masm32 macros

    Un paio di cose...

    Perché parli di macros?? Sono le macro ...

    E quale sarebbe la macro in quel codice?
  • Re: Masm32 macros

    - l'italiano non è la mia lingua materna, e su siti di programmazione scrivo 99.99% in inglese; fino ad oggi, almeno. Comunque grazie per la correzione!

    - le macro sono MsgBox ed exit
  • Re: Masm32 macros

    jj2007 ha scritto:


    - l'italiano non è la mia lingua materna, e su siti di programmazione scrivo 99.99% in inglese; fino ad oggi, almeno. Comunque grazie per la correzione!
    Beh, sembrerà un particolare, ma qui si conoscono le macro ...
    le macro sono MsgBox ed exit
    Ma sono solo le chiamate a delle macro ... Il corpo vero e proprio delle macro qual è?

    E parliamo di macro scritte da te?
  • Re: Masm32 macros

    oregon ha scritto:


    Ma sono solo le chiamate a delle macro ... Il corpo vero e proprio delle macro qual è?
      ; --------------------------------------------------------
      ; exit macro with an optional return value for ExitProcess
      ; --------------------------------------------------------
        exit MACRO optional_return_value
          IFNDEF optional_return_value
            invoke ExitProcess, 0
          ELSE
            invoke ExitProcess,optional_return_value
          ENDIF
        ENDM
    
    Estratto da \masm32\macros\macros.asm - uno di piu' di 400 macro.
    E parliamo di macro scritte da te?
    Se c'è abbastanze interesse, possiamo anche parlare di macro scritte da me, certo.
  • Re: Masm32 macros

    Ma quelle sono macro di Microsoft ...!

    E che interesse ci dovrebbe essere nel richiedere delle macro masm a te?
    E solo macro e non codice asm completo?

    Scusa ma non capisco il senso di questo thread. In genere si fanno richieste o si risponde a domande...
  • Re: Masm32 macros

    Ma quelle sono macro di Microsoft ...!
    No.
    E che interesse ci dovrebbe essere nel richiedere delle macro masm a te?
    E solo macro e non codice asm completo?

    Scusa ma non capisco il senso di questo thread. In genere si fanno richieste o si risponde a domande...
    Ha il senso di dire buongiorno, e di segnalare a quelli che si interessano per le macro che potrei essere di aiuto. Ovviamente tu non sei interessato, nessun problema.
  • Re: Masm32 macros

    Non sono nel file originale macros.inc del masm?

    Probabilmente hai solo sbagliato sezione, per i "saluti" si usa il Bar dei Programmatori, qui si discute di problemi di codice, ovviamente non soli di macro.

    Non è vero che non sono interessato, è solo una tua impressione, ma volevo solo capire se questo thread era relativo ad un problema o no.
  • Re: Masm32 macros

    oregon ha scritto:


    Non sono nel file originale macros.inc del masm?
    No. Sembra che utilizzi un altro assembler.
    Probabilmente hai solo sbagliato sezione, per i "saluti" si usa il Bar dei Programmatori, qui si discute di problemi di codice, ovviamente non soli di macro.
    Ho scelto di dire buongiorno qui perché è l'unico forum che mi interessa. Spero che avremo occasione di discutere problemi di codice, a me piaciono sopratutto gli algoritmi veloci che fanno invidio ai poveri programmatori di C++.
  • Re: Masm32 macros

    jj2007 ha scritto:


    Ho scelto di dire buongiorno qui perché è l'unico forum che mi interessa. Spero che avremo occasione di discutere problemi di codice, a me piaciono sopratutto gli algoritmi veloci che fanno invidio ai poveri programmatori di C++.
    Caschi a fagiuolo con questa frase

    Sto cercando una versione PIU' VELOCE delle funzioni trigonometriche

    Ovviamente piu' veloce dell'implementazione MMX e SSE, NON piu' veloce di un'implementazione software banale

    Usando float e con almeno 3 decimali buoni

    Naturalmente, devi anche dimostrare che sono piu' veloci, e l'errore massimo generabile

    Se no, sarebbe troppo facile.
  • Re: Masm32 macros

    migliorabile ha scritto:


    Sto cercando una versione PIU' VELOCE delle funzioni trigonometriche
    Per il momento, ti posso offrire un fattore 9 sulla funzione sin della FPU (360 Mio iterazioni per ogni algoritmo):

    Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
    3413 ms for sin
    388 ms for sin2
    3223 ms for sin
    354 ms for sin2
    Bhaskara_I vuole il doppio di sin2. Se sin2 è abbastanza veloce per te, ecco la source:

    include \masm32\MasmBasic\MasmBasic.inc     ; download
    .code
  • Re: Masm32 macros

    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.
Devi accedere o registrarti per scrivere nel forum
11 risposte