Assembleur en ligne avec gcc

nalk_deen_mook Messages postés 2 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 3 avril 2005 - 3 avril 2005 à 17:40
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 4 avril 2005 à 11:30
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

Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010
3 avril 2005 à 22:02
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
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
4 avril 2005 à 11:30
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 ???

@++
0
Rejoignez-nous