Tp2 s etudiants Département Electronique Faculté de Technologie Université Ferhat Abbas TP Le registre des drapeaux Flags register et la pile stack Rappel Les registres dont les principaux sont ax bx cx dx si di bp sp cs ds es ss ags et ip sont des emplac

Département Electronique Faculté de Technologie Université Ferhat Abbas TP Le registre des drapeaux Flags register et la pile stack Rappel Les registres dont les principaux sont ax bx cx dx si di bp sp cs ds es ss ags et ip sont des emplacements de mémoire situés dans le processeur Ils ont en général chacun une fonction particulière Le registre Flag - P Reprendre le programme d ? addition des valeurs et en utilisant juste AX - P Reprendre le programme d ? addition des valeurs et en utilisant AL Durant l ? exécution des programmes observer le registre Flags en cliquant sur le bouton Flags dans la fenêtre ? Emulator ? et compléter le tableau ci- dessous AH AL CF ZF SF OF PF AF IF DF Valeurs initiales Valeurs après exécution Programme P Valeurs après exécution Programme P Constat Dans les deux cas le programme donne des mêmes résultats mais dans le second cas le registre ag nous signal un changement au niveau de SF et OF Programme a En utilisant les instructions Mov et Cmp écrire un programme pour comparer la valeur avec la valeur Exécuter le et remplir le tableau des Flags mov ax cmp ax Licence électronique Le microprocesseur CDépartement Electronique Faculté de Technologie Université Ferhat Abbas CF ZF SF OF PF AF IF DF Programme b Reprendre la même opération pour comparer la valeur avec CF ZF SF OF PF AF IF DF Programme c Reprendre la même opération pour comparer la valeur avec CF ZF SF OF PF AF IF DF Constat Dans les cas La dernière ligne du programme ne renvoi rien mais le registre Flags change à chaque fois D ? accord nous avons bien observé que les ags changent et alors A quoi cela sert et comment exploiter les informations fournies par les ags Ce qui suit répondra à vos interrogations Soit une variable qui peut prendre les valeurs et qu ? on va comparer à la valeur et prendre des décisions en conséquence Programme a Vous reprenez le programme a si la variable prend la valeur donc inferieur à vous chargez BX avec la valeur FFh dans le cas contraire vous chargez BX avec la valeur FF h Programme b Vous reprenez le programme b si la variable prend la valeur donc égale à vous chargez CX avec la valeur FFh dans le cas contraire vous chargez CX avec la valeur FF h Programme c Vous reprenez le programme c si la variable prend la valeur donc supérieur à vous chargez DX avec la valeur FFh dans le cas contraire vous chargez DX avec la valeur FF h NB Il faut consulter votre liste d ? instructions et recenser celles qui impliquent l ? instruction ? CMP ? et les bits ? CF ? ? SF ? ? ZF ? etc du registre Flags Programme a Programme b Programme c mov ax mov ax mov ax cmp ax ja inf mov bx ? h inf mov bx ?h mov

  • 54
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager