Assembler e c++

di il
6 risposte

Assembler e c++

Salve a tutti
ho comprato da poco visual studio 2012 originale e stato un salasso ma sinceramente penso che ne e valsa la pena.
adesso ho 2 problemi
1) come faccio a compilare un sorgente assembler? (esterno file .ASM)
usando il comando ml visto dovunque io metta il file sorgente lui mi dice sempre che non lo trova!
ho gia provato a fare ml / help ma mi da tutte le opzioni di questo mondo tranne che il comando base!

2) se qualcuno riesce a rispodere alla prima domanda mi potrebbe spiegare come posso poi collegare il modulo .obj alla compilazione in c++.

ringrazio anticipatamente tutti coloro che sapranno darmi una risposta.

6 Risposte

  • Re: Assembler e c++

    Non so molto di assembler e di conseguenza di MASM ma ho trovato questo link.
    http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/f98c740b-fa81-4f91-9c83-38dd14fdbb47
    Vedi se ti può aiutare.

    Una cosa che so per certo e che Microsoft ha tolto la possibilità di includere inline delle istruzioni assembler per x64.
  • Re: Assembler e c++

    Grazie per il tentativo
    ma come al solito le guide microsoft ti fanno vedere come arrivare su marte ma se gli chiedi come accendere il motore non lo sanno!
  • Re: Assembler e c++

    Vai su:
    Project -> Build Customization e metti la spunta su masm.
    Aggiungi al progetto un file.asm e vedi se compila.
    Il singolo file intendo non l'intero progetto.
  • Re: Assembler e c++

    Grazie mille shodan mi hai salvato!
    un ultima domanda sull'argomento
    adesso come faccio a mettere la funzione in una libreria?
    mi spiego meglio il prototipo va nel file header scritto in c++ e fin qui ci sono.
    normalmente faccio:
    nel file header int funzione(int,int);
    poi nel file file della funzione faccio:
    int funzione(int a,int b)
    e poi metto la funzione
    ma nel file asm non so come inserire int funzione(int a,int b);
    tu sai come posso risolvere?
  • Re: Assembler e c++

    La sola cosa che ti posso dire è che nel file .h devi definire la funzione come:
    
    // disabilita il name mangling del C++
    extern "C" {
        // qui tutti i prototipi delle funzioni ASM
        int __cdecl MyFunction(int); 
    
    
    } 
    
    Mentre nel file ASM, dopo tutti i preamboli, dovresti avere (copiando da un esempio):
    
    _MyFunction    proc
    ...
    _MyFunction    endp
    
    (in sintassi MASM almeno, il NASM si interfaccia in altro modo.)
    Ma qui mi fermo perché non è più il mio campo.
    Eventualmente dai un'occhiata ai sorgenti ASM che dovresti avere in Programmi\Microsoft Visual Studio 11.0\VC\crt\intel
    il file cruntime.inc è un livello superiore mentre gli altri .inc che dovresti trovare nei vari .ASM, boh.
    Good Luck
  • Re: Assembler e c++

    Grazie sei un lumirare del c++
Devi accedere o registrarti per scrivere nel forum
6 risposte