Introduction à la programmation en assembleur (processeurs 64 bits de la famille 80x86)
11.5 Comparaisons et branchements conditionnels

Le FPU possède son propre registre d'état et donc ses propres drapeaux. Lors d'une comparaison de 2 nombres à virgule flottante, les drapeaux C0, C1, C2 et C3 indiquent le résultat de la comparaison.

Pour pouvoir Utiliser les instructions classiques de branchement conditionnel, il faudra transférer les valeurs des drapeaux C0,...,C3 dans les drapeaux ZF, CF et PF du registre RFLAGS.

Remarque

Cependant pour les microprocesseurs récents, l'instruction fcomi effectue la comparaison et affecte directement les registres ZF, PF et CF, ce qui permet d'utiliser immédiatement après les instructions de branchement conditionnel classiques (jc, jnc, jo, jz, etc).

Après l'instruction « fcomi %st(i) » les trois registres de EFLAGS sont modifiés de la façon suivante :

Exemple

PF=1 par exemple lorsqu'un des deux registres a NaN* pour valeur.

Si la comparaison s'est bien déroulée, alors PF=0 et les branchements conditionnels je, ja, jb, jae, jbe, jna, jnb, jnae et jnbe prennent la même signification que lorsqu'ils suivent une comparaison de valeurs entières (voir chapitre 5).