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 :

[Débutant] Débordement d'entier signé et non signé


Sujet :

Assembleur

  1. #1
    Membre habitué

    Homme Profil pro
    Cherche et essaie de corriger les bugs, ici ou là.
    Inscrit en
    Juin 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Cherche et essaie de corriger les bugs, ici ou là.

    Informations forums :
    Inscription : Juin 2009
    Messages : 103
    Points : 148
    Points
    148
    Par défaut [Débutant] Débordement d'entier signé et non signé
    Salut,

    je regarde depuis environ 2 semaines l'assembleur, j'ai commencé par lire le tuto de Lord Noteworthy.Actuelement je regarde ce cours :
    http://e-ressources.univ-avignon.fr/...ule_cours.html

    Et j'ai une question portant sur cette partie du cours :
    http://e-ressources.univ-avignon.fr/...TD_15_3_3.html

    Le texte de la correction :
    A l'entrée de la boucle, %ecx contient la valeur 0. La valeur 1 est ajoutée à %ecx à chaque itération. « jno Boucle » réalise un saut vers « addl $1, %ecx » lorsque le drapeau OF du registre d'état RFLAGS est à 0. Autrement dit, le saut sera effectué tant que l'opération « addl $1, %ecx » ne provoque pas de débordement sur les entiers signés. Lorsque %ecx passe de 0x7FFFFFFF à 0x80000000, 0F passe à 1 et l'instruction « jno » ne réalise pas le saut. L'exécution se poursuit donc à l'instruction qui suit immédiatement « jno Boucle ». La valeur de %ecx est alors 0x80000000.
    Pourquoi c'est de 0x7FFFFFFF a 0x80000000, et pas de 0xFFFFFFFF a 0x00000000 ?
    il me semblais que la valeur maximal des entier signé (que ce soit sur 8bits, 16, bits ect) était toujours égal a 0xFF.....

    merci bien, a+++
    Quand la question est : ?
    La réponse est évidente.

    Lorsque la question est, c'est tout aussi évident.

    Quelle est donc la question ?

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    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 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Bonjour,

    Citation Envoyé par Code Rom Voir le message
    il me semblais que la valeur maximal des entier signé (que ce soit sur 8bits, 16, bits ect) était toujours égal a 0xFF.....
    Pas des entiers signés, mais des entiers non signés.

    Lorsque tu considères un entier binaire comme signé, tu vas diviser en deux l'intervalle de toutes les valeurs possibles. Par conséquent, tu obtiens deux intervalles : 0000 à 7FFF et 8000 et FFFF.

    On comprend bien, ensuite, qu'en partant de zéro, si l'on incrémente la valeur pour passer à +1, on reste dans le premier intervalle [0000;7FFF] et qu'en la décrémentant pour faire -1, on passe immédiatement à FFFF, de la même façon qu'un compteur kilométrique neuf afficherait 9999999 après le première kilomètre en marche arrière s'il n'était pas protégé contre cela.

    Par conséquent, la valeur maximale positive d'un entier signé de taille arbitraire est 7FFFFF… et la valeur minimum est 800000… . La valeur FFFFFF… , toujours dans un entier signé, correspond donc toujours à -1.

  3. #3
    Membre habitué

    Homme Profil pro
    Cherche et essaie de corriger les bugs, ici ou là.
    Inscrit en
    Juin 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Cherche et essaie de corriger les bugs, ici ou là.

    Informations forums :
    Inscription : Juin 2009
    Messages : 103
    Points : 148
    Points
    148
    Par défaut
    Mais c'est magnifique, j'ai tout compris.

    Merci Obsidian.
    Quand la question est : ?
    La réponse est évidente.

    Lorsque la question est, c'est tout aussi évident.

    Quelle est donc la question ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/07/2015, 08h48
  2. Réponses: 2
    Dernier message: 04/08/2014, 13h43
  3. débutant conversion signé vers non signé
    Par bobspike dans le forum Cobol
    Réponses: 2
    Dernier message: 21/08/2009, 12h03
  4. Réponses: 14
    Dernier message: 12/04/2009, 20h47
  5. [TP] Entier 32 bits non signé
    Par SkaMan dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 24/08/2005, 22h17

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