Bonjour,
J'ai un problème. Je voudrai insérer des fonctions avec Dev C++ dans un programme en C pour lire et écrire sur des ports. Sachant que sous Dev C++, on est obligé de recourir à l'assembleur(avec la convention AT&T), j'ai essayé de programmer ces fonctions. Mais le problème c'est qu'à chaque fois, le compilateur me signale une erreur de compilation: suffixe or operands invalid for 'in' et 'mov'. En fait, j'ai trop du mal avec la syntaxe de l'assembleur AT&T.
Quelqu'un peut-il m'aider car je ne suis pas vraiment un pro en programmation?

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned char lire_port(unsigned short adressereg)
{        
  unsigned char result;       
  asm("movw $adressereg, %bx");           
  asm("inw %bx, %ax");
  asm ("movw %ax, $result");
  return result;
}
 
void ecrire_port(unsigned short adressereg2, unsigned char valeur)
{
  asm("movw $adressereg2, %dx");
  asm("movw $valeur, %ax");
  asm("outw %ax, %dx");
}