IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Petit probleme BCC32


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 277
    Par défaut Petit probleme BCC32
    Bonjour,

    J'ai un petit probleme sur un petit programme:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    unsigned char inp(unsigned short port);
    void outp(unsigned short port, unsigned char valeur);
    unsigned int inpw(unsigned short port);
     
    main()
    {
    	unsigned char valeur;
    	valeur = inp(0x378);
    	return( 0 );
    }
     
    unsigned char inp(unsigned short port)
    {
       unsigned char valeur;
       asm {
          mov DX, port
          in AL, DX
          mov valeur,AL
       }
       return( valeur );
    }
     
    void outp(unsigned short port, unsigned char valeur)
    {
       asm {
          mov DX, port
          mov AL, valeur
          out DX, AL
       }
    }
     
    unsigned int inpw(unsigned short port)
    {
       unsigned int valeur;
       asm {
          mov DX, port
          in AX,DX
          mov valeur,AX
       }
       return( valeur );
    }
    Je compile avec:

    BCC32 -c TEST32.C

    Et j'ai l'erreur:

    Operand types do not match

    sur la ligne:

    Il traduit la fonction inpw par:

    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
    16
    _inpw	proc	near
    ?live1@240:
    	push      ebp
    	mov       ebp,esp
    	push      ecx
    @9:
    	mov	 DX, word ptr [ebp+8]
    	in	 AX,DX
    	mov	 dword ptr [ebp-4],AX
    	mov       eax,dword ptr [ebp-4]
    @11:
    @10:
    	pop       ecx
    	pop       ebp
    	ret 
    _inpw	endp
    et l'erreur se situe a la ligne:

    mov dword ptr [ebp-4],AX

    Je precise que ce bout de code va etre utilisé ensuite dans un kernel "fait maison", donc je doit réécrire les fonctions d'entree / sortie pour gerer le materiel.

    D'ou peut venir mon probleme ?

    Cordialement.

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 277
    Par défaut Trouve
    Bonjour,

    En remplacant AX par EAX, ca marche.

    Ce code est un copié-coller d'un code origine pour 16bits.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo