Assembleur en ligne avec gcc

Signaler
Messages postés
2
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
3 avril 2005
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour quelqu'un pourrait il mexpliquer pourquoi ce bout de code ne fonctionne pas

#include<stdio.h>


int main(){
int a=10,b;
_asm("movl %1 %%eax";
"movl %%eax, %0;"
:"=r"(b)
:"r" (a)
:"%eax"
);
printf("b=%d",b);

}

merci d'avance

2 réponses

Messages postés
41
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
28 avril 2010

Perso,
Je te conseillerais plutot de faire appel à des fonctions écrite et compiler pour nasm, et de les appeller en tant que fonction extern à partir de ton code.

Bub325
Le codeur pas comme tout le monde
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

personnellement, cela ne m'etonne pas trop, rien que dans l'ecriture, c'est gavé de trucs bizarre.

_asm("movl %1 %%eax"; ; le point virgule est apres " + pas de virgule dans l'operateur
"movl %%eax, %0;" ; le point virgule est avant " + 0 = eax ???

@++