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

x86 16-bits Assembleur Discussion :

Coder une variable DD dans le registre AX !


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 78
    Points : 49
    Points
    49
    Par défaut Coder une variable DD dans le registre AX !
    Bonsoir,

    J'ai une variable déclarée DD (normalement, elle est codée sur 32 bits. Ainsi, je peux coder tout chiffres allant de 0 à 2^32).

    Par contre AX ou n'importe quel autre registre 16 bits ne peut supporter que des nombres composés de 5 chiffres XXXXX. si j'ai un DD par exemple : 10000, il est bien representé en AX, mais 1.000.000 par exemple n'est pas bien representé. Et elle est arrondie en 5 chiffres. Dans notre exemple c'est : 16960 ! d'où vient le problème ? Et comment faire pour avoir ou afficher le contenu tant que je l'ai entré dans mon exemple : 1.000.000 ?

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    16960 correspond au reste de la division de 1 000 000 / 65536.

    1 000 000 = (15 x 65536) + 16960 (dec)

    F4240h = (0Fh x 10000h) + 4240h (hexa)

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 78
    Points : 49
    Points
    49
    Par défaut
    merci,

    mais si je veux afficher mon entier, comment dois-je faire ?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Bonjour,

    AX ou n'importe quel registre 16 bits ne permet pas de coder en soi « les nombres à 5 chiffres » mais seulement les nombres entiers de 0 à 65535, soit 2¹⁶-1 (je mets volontairement de côté les nombre signés pour le moment). Ça veut dire que tout entier décimal à 5 chiffres mais supérieur à 65535 ne pourra pas être représenté non plus. En hexadécimal, on peut représenter tous les nombres à 4 chiffres, soit de 0 à FFFF (c'est l'intérêt de l'hexadécimal).

    Citation Envoyé par ned_kelly Voir le message
    Et comment faire pour avoir ou afficher le contenu tant que je l'ai entré dans mon exemple : 1.000.000 ? Merci d'avance.
    Ça dépend de ce que tu utilises pour afficher tes nombres. Si c'est avec D.O.S., il y a des interruptions pour cela. Sinon, il faut écrire un algo qui permet de traiter les grands nombres par parties.

    Avec quoi travailles-tu ?

Discussions similaires

  1. Enregistrement d'une variable dynamique dans un fichier
    Par zarbydigital dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 21h28
  2. Réponses: 11
    Dernier message: 22/06/2005, 11h04
  3. installer une variable environnement dans windows xp pack 2
    Par superjeanpi dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/03/2005, 10h13
  4. Utilisation d'une Variable(Vb) dans d'autre language
    Par cach dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2005, 12h00
  5. [VB6]Initialiser une variable Static dans un évenement
    Par loverdose dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 20/01/2005, 14h57

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