Pb avec l'assembleur dev-cpp

Signaler
Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
-
Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
-
Voici une source vue sur cppfrance et corrigée pour l'assembleur de Dev-Cpp

#include
#include <stdlib.h>
#include <conio.c>

#pragma inline
using namespace std;

int main(void)
{
unsigned int adr=0x378;
unsigned char ret_char;
// instructions assembleur
asm("movl adr, %edx");
asm("in %dx, %al");
asm("movb %al, ret_char");

printf("%c", ret_char);
getch();
return 0;
}

quand je compile, dev-cpp m'indique deux erreurs du type
[Linker error] undefined reference to 'adr'
Que se passe-t-il ???

3 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
tu as essayé de mettre adr entre crochet.
Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
1
merci d'avoir répondu ymca2003, mais ça ne semble pas être la solution... en fouillant un peu dans les sources, j'ai vu une syntaxe de ce type _adr mais ça ne fonctionne pas non plus...

HELP !!!
Messages postés
114
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
5 avril 2012
1
Suite & Fin ...

A force de bidouiller, j'ai trouvé, il falait déclarer les variables en globales :

#include
#include <stdlib.h>
#include <conio.c>

using namespace std;
unsigned int adr=0x378;
unsigned char ret_char;

int main(void)
{

// instructions assembleur
#pragma inline
asm("movl _adr, %edx");
asm("in %dx, %al");
asm("movb %al, _ret_char");

printf("%c", ret_char);
getch();
return 0;
}

Bonne prog à tous !!!