Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007
-
5 janv. 2007 à 20:22
Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007
-
17 janv. 2007 à 19:21
Bonsoir tout le monde
1)Pourquoi le bit d'état PF (Parity flag) ne concerne que les 8 bits de poids faible du résultat de l'opération?? Et quel est le BUT d'indiquer si le nombre de bits à 1 est pair ou impair??
2)Pourquoi le bit d'état auxiliaire AF ne concerne la transition du 1 que entre les bits B3 et B4 précisément??
Nukleos
Messages postés31Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention31 juillet 2008 6 janv. 2007 à 15:51
Il s'agit de drapeaux réservés à l'usage exclusif des opérations en BCD. (Binaire Codé Décimal).
Ces opérations de type 4-bits étaient à la mode à l'époque des processeurs 4-bits dans les années 197x. Elles sont aujourd'hui tombées en désuétude et sont même bannies pour les processeurs 64-bits.
La parité de bits était utilisée pour les transmission série. C'était une forme de CRC du pauvre...
Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007 13 janv. 2007 à 22:47
Salut,
Ok patrick, merci infiniment pour les liens,sauf que ya une ptite confusion là concernant le PF lorsqu'on dit:
la parité du nombre est paire s'il contient un nombre pair de bits à 1 ; cela donne évidemment le même résultat que faire la somme des bits.
http://fr.wikipedia.org/wiki/Parit%C3%A9 Là je ne saisi pas trop ce que ça veut dire.
Soit c'est une contradiction avc ce qu'ils expliquent dans la suite en signalant qu'
Il ne faut pas confondre parité d'un nombre, et le fait qu'il soit pair ou impair (au sens mathématique du terme). Le nombre binaire 00000011 (3 en nombre décimal) est impair (non-divisible par 2) mais de parité paire (nombre pair de bits à 1).
Soit c'est moi qui ne comprends pas le sens de la phrase:-)
Et puis pour le code BCD, vu que les opérations arithmétiques dans ce code nécéssitent souvent une corréction du résultat final, est ce que vous pouvez m'expliquer comment se fait cette corréction au juste
D'avance, Merci!
Salutations
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nukleos
Messages postés31Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention31 juillet 2008 14 janv. 2007 à 23:09
> la parité du nombre est paire s'il contient un nombre pair de bits à 1 ;
> cela donne évidemment le même résultat que faire la somme des bits.
> Il ne faut pas confondre parité d'un nombre, et le fait qu'il soit pair ou impair (au sens mathématique du terme).
> Le nombre binaire 00000011 (3 en nombre décimal) est impair (non-divisible par 2) mais de parité paire (nombre pair de bits à 1).
Tableau concret pour les nombres 0 à 17 :
00000000 ; nombre pair ; SommeBits=000 paire ; PF=1.
00000001 ; nombre impair ; SommeBits=001 impaire ; PF=0.
00000010 ; nombre pair ; SommeBits=001 impaire ; PF=0.
00000011 ; nombre impair ; SommeBits=010 paire ; PF=1.
00000100 ; nombre pair ; SommeBits=001 impaire ; PF=0.
00000101 ; nombre impair ; SommeBits=010 paire ; PF=1.
00000110 ; nombre pair ; SommeBits=010 paire ; PF=1.
00000111 ; nombre impair ; SommeBits=011 impaire ; PF=0.
00001000 ; nombre pair ; SommeBits=001 impaire ; PF=0.
00001001 ; nombre impair ; SommeBits=010 paire ; PF=1.
00001010 ; nombre pair ; SommeBits=010 paire ; PF=1.
00001011 ; nombre impair ; SommeBits=011 impaire ; PF=0.
00001100 ; nombre pair ; SommeBits=010 paire ; PF=1.
00001101 ; nombre impair ; SommeBits=011 impaire ; PF=0.
00001110 ; nombre pair ; SommeBits=011 impaire ; PF=0.
00001111 ; nombre impair ; SommeBits=100 paire ; PF=1.
00010000 ; nombre pair ; SommeBits=001 impaire ; PF=0.
00010001 ; nombre impair ; SommeBits=010 paire ; PF=1.
........
PF peut être obtenu en prenant l'inverse du bit de poids faible de la somme des bits.
>Et puis pour le code BCD, vu que les opérations arithmétiques dans ce code nécéssitent souvent une corréction du résultat final, est ce que vous pouvez m'expliquer comment se fait cette corréction au juste
Petit programme à suivre dans un débogueur :
MOV AX,8 ; nombre 8.
ADD AL,3 ; augmenté de 3 égale 11. Mais 11 tient sur un octet.
AAA ; Correction car on souhaite le nombre 11 écrit sur 2 octets.
; AH=1 AL=1
Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007 15 janv. 2007 à 21:21
Salut
Merci pour la réponse concernant le PF, chui super satisfaite :-) , sauf que a propos de l'exemple concerant le BCD, je suis un peu perdue, parceque là, si je cherche à savoir comment se fait la corréction c'est pour pouvoir faire le lien avec le AF . c à d comment se fait la corréction par le processeur, par exemple si on veut faire:
mov ax ,59D
add ax, 11D
Donc si je ne me trompes pas, ce code va faire corréspondre à chaque caractére du systeme décimal, un mot du code binaire sur 4bits . Quand on fait l'opération indiqué en haut on aura
01011001 + 00010001 on aura pour résultat 01101010 ,or ce résultat est faux puisqu'il faut obtenir 01110000( c. à .d 70), donc là il est necessaire de corriger ce résultat.
Concernant ton exemple, je ne vois pas la nécéssité de corriger le résultat
Bref, là je me nois dans un verre d'eau :-), je crois que j'ai tout faux et qu'il ya quelque chose qui cloche dans mon raisonnement concernant les opérations arithmétiques dans le code BCD
Nukleos
Messages postés31Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention31 juillet 2008 15 janv. 2007 à 22:23
Attention !!! il fallait écrire :
MOV AX,59H ; en pensant mentalement que tu veux du Décimal.
ADD AX, 11H ; en pensant mentalement que tu veux du Décimal.
DAA ; il faut dire au processeur que c'était du Décimal, d'où la correction qu'il fait à posteriori du résultat de l'addition réalisée en binaire naturel.
Lilia_sys
Messages postés15Date d'inscriptionsamedi 28 octobre 2006StatutMembreDernière intervention21 avril 2007 17 janv. 2007 à 19:21
Bonsoir
Merci de m'avoir répondu Patrick, mais là mes blemes ne sont pas encore réglés :-(
Je ne suis pas douée en anglais , jme suis perdue sur le lien ke tu m'as passé.
Bon si tu veux mpasser un fichier, (je n'ai aucune idée sur la façon de le joindre dans le message), mais tu peux me l'envoyer a cette adresse :-)
[mailto:asm_archi2@yahoo.fr asm_archi2@yahoo.fr]