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

Assembleur Discussion :

Problème avec l'instruction IN : 16 bits retournés


Sujet :

Assembleur

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Problème avec l'instruction IN : 16 bits retournés
    Salut Monde!

    Il y a 2 semaines, j'ai écrit un petit programme en c permettant de lire et écrire sur les ports du pc (notamment lpt1)
    Hier, je me suis mis sur la reprogrammation de cette application en asm.
    Avec l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MOV ax, 0h
    IN ax, 378h ;lecture des 8 bits data du lpt1
    j'obtiens dans ax la valeur 7F04h soit codée sur 16 bits.
    Avec une diode branchée successivement sur les 8 bits data, j'ai vérifié que j'avais en bien sortie 04h
    D’ou vient le 7Fh?

  2. #2
    mat.M
    Invité(e)
    Par défaut
    euuuh il me semble que IN et OUT ça fonctionne de paire avec DX plutot que AX non ?
    L'accumulateur AX c'est destiné à effectuer des opérations de calculs.

    Astuce pour mettre à 0 : xor registre,registre cela est codé par une seule instruction

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Juste!

    c'est bien dx (la valeur immediate est pour les ports < 0FFh -je me suis planté en écrivant le msg)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov dx, 378h
    in ax, dx
    mais je ne vois toujours pas d'ou viens le 7Fh

  4. #4
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour,

    Pour récupérer 8 bits, ne faudrait-il pas écrire :

  5. #5
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Salut,
    Effectivement, tu recupere une valeur 16 bits donc ton 7Fh vient du
    port 379h tout simplement

    a+ Francois

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

Discussions similaires

  1. problème avec l'instruction try catch endtry
    Par jabulon dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/01/2008, 12h33
  2. Problème avec l'instruction "mid"
    Par baykus dans le forum VB.NET
    Réponses: 4
    Dernier message: 11/01/2008, 16h33
  3. [aide]probléme avec l'instruction group by
    Par diden138 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/05/2007, 08h09
  4. Problème avec une instruction VBA
    Par Jpeg69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2007, 13h58
  5. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 17h56

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