Pb avec l'assembleur dev-cpp

cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 - 15 avril 2004 à 09:14
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 - 16 avril 2004 à 09:18
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
15 avril 2004 à 17:14
tu as essayé de mettre adr entre crochet.
0
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
16 avril 2004 à 08:09
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 !!!
0
cs_6co Messages postés 114 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 5 avril 2012 1
16 avril 2004 à 09:18
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 !!!
0
Rejoignez-nous