Vous êtes sur la page 1sur 6

DU BINAIRE AU MICROPROCESSEUR - D.

ANGELIS LOGIQUE COMBINATOIRE INTRODUCTION DE DONNEES DANS UNE MACHINE

Les machines ne fonctionnent que dans le systme binaire, aussi l'introduction de donnes posent un problme considrable. L'introduction sous forme de nombres binaires est possible , mais c'est une mthode lente et peu commode. Cette technique en gnral consiste entrer les nombres l'aide de 8 ou 16 commutateurs disposs sur la face avant de l'appareil. L'oprateur affiche son nombre binaire l'aide de ces commutateurs puis valide celuici en pressant un bouton poussoir. Le nombre ainsi valid est alors enregistr par la machine. Introduction de donnes dcimales et codage DCBN Une technique plus souple permet d'introduire les donnes directement dans le systme dcimal. On dispose alors, sur la face avant de la machine, d'un clavier comportant les dix touches dcimales (0 9) ainsi qu'une touche de validation. Ce clavier est reli un circuit ou un ensemble de circuits nomms "codeur de clavier". Ce circuit a pour fonction de fournir l'quivalent binaire (4 bits) de la valeur indique sur la touche et de ranger cette valeur droite de la prcdente, si le clavier a dj t sollicit. Exemple: Le nombre 539 sera cod de la faon suivante: 5 0101 3 0011 9 1001

Cette mthode, agrable pour l'utilisateur, permet la machine de coder au fur et mesure les digits qui sont prsents, elle n'a pas besoin de connatre au pralable la taille des nombres. La frappe d'une touche autre que numrique indiquant que le nombre est termin. Nous pouvons en dduire le Code DCBN (Dcimal Cod Binaire Naturel). Dcimal 0 1 2 3 4 5 6 7 8 9 Binaire 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1

Problmes poss par le codage DCBN Sachant que les machines ne connaissent que le binaire pur, que nous appellerons Binaire Naturel, voyons les problmes que pose l'utilisation du codage DCBN. Effectuons l'Addition suivante 12 + 24 = 36: En base 10 1 2 + 2 4 _____ 3 6 En DCBN 0 0 0 1 0 0 1 0 + 0 0 1 0 0 1 0 0 _______________________________ 0 0 1 1 0 1 1 0

3 6 Nous voyons que le rsultat de cette opration effectue dans le systme DCBN est correct

10

DU BINAIRE AU MICROPROCESSEUR - D. ANGELIS LOGIQUE COMBINATOIRE

Effectuons maintenant cette autre Addition 19 + 28 = 47 : En base 10 1 9 + 2 8 _____ 4 7 En DCBN 0 0 0 1 1 0 0 1 + 0 0 1 0 1 0 0 0 _______________________________ 0 1 0 0 4 0 0 0 1 1

Le rsultat est ici entach d'une erreur, le total est infrieur de 6 units au rsultat correct. Effectuons nouveau une autre Addition 16 + 25 = 41 : En base 10 En DCBN 1 6 + 2 5 _____ 4 1 0 0 0 1 0 1 1 0 + 0 0 1 0 0 1 0 1 _____________________________ 0 0 1 1 1 0 1 1 3 11

Dans la seconde opration il manque 6 units, dans la troisime le rsultat est farfelu. Nos problmes trouvent leur origine dans le fait que la machine travaille toujours en binaire naturel et que l'addition de deux bits de poids 8 gnre un 0 pour les poids 8 et un 1 pour les poids 16 or en DCBN la colonne de poids 16 n'existe pas, elle est remplace par une colonne de poids 10. Ceci explique que lorsqu'on ralise une addition de nombres DCBN l'aide d'un circuit classique l'addition de deux bits de poids 8 gnre un report dans la colonne de poids 10 ce qui dprcie le rsultat de 6. De mme l'addition binaire gnre un report lorsque le rsultat gale ou dpasse 16 alors que l'addition DCBN doit fournir un report lorsque le rsultat atteint 10. Il faut donc dans ce dernier cas que l'addition de deux nombres dont la somme est 10 se comporte comme si elle avait atteint 16. Solution: Dans une addition DCBN lorsque la somme de deux nombres de 4 bits atteint ou dpasse 10 il faut ajouter 6 au rsultat . Il en est de mme lorsqu'un report est gnr. Lorsque les nombres comportent plusieurs groupes de 4 bits, il faudra contrler chacune des dcades composant le nombre et effectuer les corrections dcade par dcade. Exemple: Dans le dernier exemple ajoutons "6" aux 4 bits de poids faible dont l'addition donnait 11 1 6 + 2 5 + ______ 4 1 Le rsultat est alors correct. Nous laissons le soin au lecteur de vrifier que, dans le cas de la soustraction , si le rsultat de la soustraction sur une dcade gnre une retenue, il faut, pour corriger ce rsultat, soustraire 6 (0110) Les problmes lis l'utilisation du codage DCBN viennent de ce que les combinaisons binaires naturelles de 10102 (1010) 11112 (1510) sont inexistantes puisque seules les dix premires combinaisons sur les 16 possibles sont utilises. Il serait plus judicieux d'employer un systme dont la base utiliserait toutes les combinaisons du codage binaire naturel soit trois bits, ce serait alors un systme Octal (base de 010 0002 710 1112) soit 4 bits, ce serait un systme Hexadcimal. 0 0 0 1 0 1 1 0 + 0 0 1 0 0 1 0 1 + 0 0 0 0 0 1 1 0 ___________________________ 0 1 0 0 0 0 0 1

DU BINAIRE AU MICROPROCESSEUR - D. ANGELIS LOGIQUE COMBINATOIRE

11

Le systme Octal nest pratiquement plus employ, nous ne l'tudierons donc pas, par contre nous nous arrterons sur le systme Hexadcimal. Introduction de donnes Hexadcimales et codage binaire naturel Le systme numrique Hexadcimal est un systme base 16. Il est donc ncessaire de possder 16 caractres diffrents pour diffrencier les 16 "chiffres" de la base, les nombres tant une juxtaposition des caractres. Le systme dcimal nous fournit les dix premiers, les six suivants seront les six premires lettres de l'alphabet. DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 31 32 255 256 257 Les puissances de 16 160 = (24)0 161 162 163 = = = (24)1 (24)2 (24)3 HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 1F 20 FF 100 101 BINAIRE 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0001 0000 0001 0001 0001 0010 0001 1111 0010 0000 1111 1111 0000 0000 0000 0001

0001 0001

= 20 = 24 = 28

= = =

110 1610 25610

= 212 = 409610

164 = (24)4 = 216 = 6553610 A noter que les puissances de 16 sont aussi des puissances de 2 et se terminent toutes par 6 ( except 20). Codage d'un nombre Dcimal en Hexadcimal Nous avons vu les mthodes permettant de passer du dcimal au binaire, mthodes des puissances de deux ou divisions successives par deux, nous pourrons les transposer en base 16.

12

DU BINAIRE AU MICROPROCESSEUR - D. ANGELIS LOGIQUE COMBINATOIRE

Mthode des puissances de 16 Soit convertir le nombre dcimal 15542 en Hexadcimal 15 542 3254 182 6 = (4096 * 03) + = (256 * 12) + = (16 * 11) + = (1 * 6) + 3254 182 6 0 3 C B 6 digit de poids fort Digit de poids faible

D'o : 15 542 10 = 3CB6 16 Mthode des divisions successives par 16 15 542 971 60 3 : : : : 16 16 16 16 = = = = 971 60 3 0 reste reste reste reste 6 11 12 3 6 B C 3 Digit de poids faible Digit de poids fort

D'o : 15 542 10 = 3CB6 16 Passage de l'Hexadcimal au Binaire naturel et vice-versa Passage de l'Hexadcimal au Binaire naturel Le passage de l'Hexadcimal au binaire naturel se fait trs facilement, il suffit d'utiliser la mme technique que pour le passage du dcimal au DCBN c'est dire qu'il suffit de coder chaque terme Hexadcimal l'aide des 4 bits. Contrairement au DCBN, du fait que la base de l'hexadcimal utilise la totalit des combinaisons du code binaire 4 bits le rsultat obtenu est en Binaire Naturel. Exemple: Coder en base 2 le nombre hexadcimal 3CB6 3 0011 C 1100 B 1011 6 0110

D'o 3CB6 en hexadcimal = 0011 1100 1011 0110 en binaire naturel Passage du Binaire naturel l'Hexadcimal Nous appliquerons la mthode inverse de la prcdente, c'est dire que nous sparerons le nombre binaire en paquets de 4 bits de la droite vers la gauche puis chacun des paquets nous donnerons l'quivalent hexadcimal. Exemple: Coder en base 16 le nombre binaire 11100111010100 Sparons en paquet de 4 bits de droite gauche : 11 1001 1101 0100 recherchons les quivalents 0011 3 1001 9 1101 D 0100 4

D'o le nombre binaire : 11100111010100 = au nombre hexadcimal 39D4

DU BINAIRE AU MICROPROCESSEUR - D. ANGELIS LOGIQUE COMBINATOIRE

13

Il rsulte de la simplicit de passage du binaire l'hexadcimal et de l'hexadcimal au binaire que ce systme de numration est devenu une autre faon de prononcer le binaire. Par abus de langage on dira d'une machine qu'elle travaille en hexadcimal alors que tout son fonctionnement est en binaire , seul l'interfaage homme machine se faisant en hexadcimal

Oprations arithmtiques en hexadcimal Il est ncessaire de savoir excuter des oprations arithmtiques directement en hexadcimal et notamment de savoir additionner et soustraire. Ce cours tant principalement une prparation l'emploi des microprocesseurs le lecteur pourra se rendre compte ce moment de sa formation l'importance que revt l'hexadcimal et principalement pour l'adressage combien il est important de savoir additionner et soustraire dans ce systme de numration. Addition Le processus d'addition est videmment identique dans tous systmes de numration. Lorsque la somme de deux chiffres dpasse la base, on soustrait celle-ci au rsultat ce qui cre un report ainsi la somme de F+ E = 1D, on pourra se tenir le raisonnement suivant: 15 + 14 = 29 or 29 = 16+13 = 1.161 + 13 soit 1D Exemple : Effectuer 18C6FD16 + 9A815316 = Reports 1 1 1 1 1 8 C 6 F D + 9 A 8 1 5 3 __________________ B 3 4 8 5 0 Soustraction Dans le mcanisme de la soustraction lorsque le chiffre soustraire est plus grand que le chiffre auquel il est soustrait il faudra prendre une unit dans la colonne suivante qui devient 16 dans la colonne prcdente Exemples: Effectuer C416 - AC16 Retenue C 4 A C 1 ______ 1 8 Dans l'opration ci-dessus on se tiendra le raisonnement suivant: C (12) t de 4, je dis: 16+4=20 moins 12 il reste 8 et je retiens 1 puis 1+A=B (11) t de C (12) il reste 1 d'o le rsultat 18 Effectuer 5F4B116 1FCA816 5 F 4 B 1 - 1 F C A 8 Retenues 1 1 1 _________________ 3 F 8 0 9 Exercices Codage DCBN a/ Exprimer en DCBN les nombres dcimaux suivants: 12, 108, 1990, 21712

14

DU BINAIRE AU MICROPROCESSEUR - D. ANGELIS LOGIQUE COMBINATOIRE b/ Exprimer en dcimal les nombres DCBN suivants: 0101 0011, 0111 1001, 0011 1000 0111, c/ Parmi les nombres DCBN suivants l'un est entach d'une erreur lequel? 0110 0000, 1010 0111, 0001 0000 1001

Oprations en DCBN a/ Additionner les nombres DCBN ci-dessous et effectuer les corrections ncessaires: 0 1 0 1 0 1 0 1 + 0 0 1 1 0 1 0 0 __________________ 0 1 1 0 0 1 1 1 + 0 0 1 1 1 0 0 1 ___________________ 0 1 0 0 1 0 0 1 + 0 1 0 1 0 1 0 0 ___________________

b/ Soustraire les nombres DCBN ci-dessous et effectuer les corrections ncessaires: 0 1 0 1 0 1 0 1 - 0 0 1 1 0 1 0 0 ___________________ 0 1 1 0 0 1 1 1 - 0 0 1 1 1 0 0 1 ___________________ 0 1 1 1 1 0 0 1 - 0 1 0 1 0 1 0 0 ___________________

Systme de numration hexadcimal a/ Exprimer en hexadcimal les nombres dcimaux suivants: 112, 255, 256, 1024, 1990, 57897 b/ Exprimer en hexadcimal les nombres binaires suivants: 0110101101001010, 001110100001111, 01111010101111111100111 c/ Exprimer en dcimal les nombres hexadcimaux suivants: 2BC, F12, CAFE, BAFE d/ Exprimer en binaire les nombres hexadcimaux suivants: 2BC, F12, CAFE, BAFE Oprations arithmtiques en hexadcimal a/ Effectuer les Additions en hexadcimal ci-dessous: 1 2 A + 4 8 2 ________ 2 E A 8 5 + 7 0 4 9 7 __________________ + 4 D E F 5 9 B 1 1 5 _____________

b/ Effectuer les Soustractions en hexadcimal ci-dessous: E 2 A - 4 8 2 _____________ 2 E A 8 5 1 0 4 9 7 ________________ F D E F 5 9 F F 1 5 _______________