begin process at 2010 02 09 21:58:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

Flags PF/AF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Flags PF/AF

vendredi 5 janvier 2007 à 20:22:20 | Flags PF/AF

Lilia_sys

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??

samedi 6 janvier 2007 à 15:51:39 | Re : Flags PF/AF

Nukleos

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...

Salutations.

Patrick

samedi 6 janvier 2007 à 18:27:21 | Re : Flags PF/AF

Lilia_sys

Merci Patrick
Est ce que tu peux etre plus explicite concernant le BCD, je connais le BCD mais je ne vois pas trop l'interet ici.

Et puis pour les termes TRANSMISSION SERIE et CRC du pauvre, j'aimerais bien que tu sois plus explicite aussi stp

Salutations

Lilia

dimanche 7 janvier 2007 à 13:51:47 | Re : Flags PF/AF

Nukleos

Quelques liens,

pour  BCD :
http://fr.wikipedia.org/wiki/Binary_coded_decimal


pour bit de parité :
[ Lien ]

J'espère que ces définitions te conviendront.
 
Patrick.
samedi 13 janvier 2007 à 22:47:37 | Re : Flags PF/AF

Lilia_sys

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.
[ Lien ]
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



dimanche 14 janvier 2007 à 23:09:38 | Re : Flags PF/AF

Nukleos

> 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

A bientôt.

Patrick

lundi 15 janvier 2007 à 21:21:12 | Re : Flags PF/AF

Lilia_sys

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

A bientôt.

Lilia

lundi 15 janvier 2007 à 22:23:13 | Re : Flags PF/AF

Nukleos

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.

Tu comprendrais mieux si tu traçais le programme avec un débogueur.
En voici un ici : [ Lien ]
Et le programme là : ftp://patrick.ruiz2%40libertysurf.fr@ftp.chez-alice.fr/DAA.exe

Patrick


P.S. : Où trouver l'option pour joindre un fichier dans un message ?
mercredi 17 janvier 2007 à 19:21:06 | Re : Flags PF/AF

Lilia_sys

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 :-) 
asm_archi2@yahoo.fr

A bientot

Lilia



Cette discussion est classée dans : pf, bits, bit, flags, af


Répondre à ce message

Sujets en rapport avec ce message

bits de registres [ par vecchio56 ] Salut,Je cherche le moyen le plus rapide de-connaitre le bit numero n d'un registre-mettre à b le bit numero n d'un registre(Ou si c'est possible mett help me [ par theyoupione ] j'ai écri un ptit prog dont voici un extrait permettant d'envoyer un octet vers liaison série mais j'ai un pb lors de la compilation avec mplabl'erreu Aide nombre en asm 8086 16 bits [ par Maureka ] je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri projet de fin d'année [ par jorus1212 ] Je suis en projet et je doit developpé un programme qui absorbe les données d'un pc par liaison rs232 de façon asynchronne et les stocke dans le buffe % sur 64 bits [ par vecchio56 ] Je fait un mul, donc j'obtiens un nombre en 2 parties dans eax et edx, soit n sur 64 bits.J'aimerais savoir comment je peux faire pour obtenir n % x e Comment déclarer un champs de bits(BITFIELD ou RECORD) en NASM ? [ par fidro ] Bonjour, Aprés avoir longtemps programmé avec MASM et TASM, j'ai décidé de passer à NASM.Mais voilà, il y a quelques différences ...Et pour l'instant asm 16 bits vers asm 32 bits [ par trinitacs ] Pouvez me traduire cet asm 16 bits en asm 32 bits:asm{ MOV AX, variable int 0x10}C'est pour activer le mode VGA.merci Placer là "partie basse" d'un registre 32 bits dans un registre 16 bits ??? [ par Otaku ] Salut, tout est dans le titre, comment faire pour placer la partie basse (LOWWORD) d'une valeur stockée dans le registre EAX dans un registre 16 bits TDASM,NDASM,NDASM32 ????? [ par Bombela ] Salut !!Je commence la prog Asm.Je connais déja Delphi et Le turbo pascal.Je ne sais que prendre comme compilateur.Mais je suppose que les 16 bits mar Petite question... [ par did2604 ] Bonsoir,Que signifie exactement la notation crochet en assembleur ? Je m'explique, par exemple : mov cl,[bx], je suppose que ce n'est pas un move ordi


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales