Carry flag d'une operation de imul

Résolu
Bonjour,
je voudrais savoir pourquoi le petit programme suivant met CF a 1 bien que le résultat en hexa (C0) ne dépasse pas les 8 premier bits de AX et est contenu dans le registre al ?? normalement juste le flag OF mis a 1 doit suffire pour comprendre le résultat non ?? merci

mov al, 48
mov bl, 4
imul bl

2 réponses

  1. Contributeur
    bonjour, il me semble que ce comportement est conforme à la spécification de imul : CF et OF ont la même valeur.
    1. merci yg_be mais, il n y a pas de retenue !? n'est ce pas !
      1. Contributeur
        je pense que c'est parce que les 8 bits du registre AL ne suffisent pas à déterminer le résultat, il faut utiliser le registre AX pour déterminer le signe du résultat.
        C0, en 8 bits, est négatif, tandis que 00C0, en 16 bits, est positif.
      2. @yg_beje pense que cela me convient comme réponse
        merci beaucoup
      3. @yg_beC0, en 8 bits, est négatif, tandis que 00C0, en 16 bits, est positif.
        ===============================

        mais au fait, n'est ce pas justement le rôle de OF de nous donner cette indication au lieu de CF.

        merci