1. #1
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    mars 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 308
    Points : 71
    Points
    71

    Par défaut RDMSR et assembleur en ligne VC++

    Hello World

    Voici un bout de code qui utilise RDMSR avec GCC in line :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    __asm__ __volatile__ ("rdmsr"
                            :"=a"(low), "=d"(high)
                            :"c"(msr));
    Je dois le traduire en inline Visual C++ et j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    __asm
    	{
    		rdmsr
    		eax, low;
    		edx, high;
    		ecx, msr;
    	}
    Cependant j'ai le message suivant d'erreur :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Gravité	Code	Description	Projet	Fichier	Ligne	État de la suppression
    Avertissement	C4405	'eax' : cet identificateur est un mot réservé	TEST_ASM	
    Erreur	C2400	erreur de syntaxe d'assembleur inline dans 'opcode' ; trouvé ','	
    Avertissement	C4405	'edx' : cet identificateur est un mot réservé	TEST_ASM	
    Erreur	C2400	erreur de syntaxe d'assembleur inline dans 'opcode' ; trouvé ','	
    Avertissement	C4405	'ecx' : cet identificateur est un mot réservé	TEST_ASM	
    Erreur	C2400	erreur de syntaxe d'assembleur inline dans 'opcode' ; trouvé ','

    Pourriez-vous m'aider à corriger les erreurs SVP et me dire quelle serait l'instruction équivalente à __volatile__ sur Visual C++ inline ?

    Merci

  2. #2
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    mars 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 308
    Points : 71
    Points
    71

    Par défaut

    Bon j'avance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    __int64 rdmsr(__int32 msr, __int32* pHigh, __int32* pLow) 
    {
    	__int32 low, high;
    	__asm
    	{
    		mov msr, ecx;
    		rdmsr;
    		mov eax, low;
    		mov edx, high;
    	}
    }
    Mais j'ai ce message d'erreur :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gravité	Code	Description	Projet	Fichier	Ligne	État de la suppression
    Erreur	C2400	erreur de syntaxe d'assembleur inline dans 'second opérande'*; trouvé 'newline'	TEST_ASM	
    Erreur	C2400	erreur de syntaxe d'assembleur inline dans 'second opérande'*; trouvé 'newline'	TEST_ASM

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/06/2014, 16h49
  2. Assembleur en ligne avec le langage C et le compilateur GCC
    Par issam.abdallah dans le forum Téléchargez
    Réponses: 0
    Dernier message: 26/06/2014, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo