La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés 3 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 2 représentations pour le 0.

Présentations similaires


Présentation au sujet: "CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés 3 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 2 représentations pour le 0."— Transcription de la présentation:

1 CHAPITRE 5 Les nombres entiers 1

2 Les entiers 2

3 Les entiers signés 3 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 2 représentations pour le 0

4 Les entiers signés On doit prendre en compte la facilité avec laquelle les opérations mathématiques peuvent être implémentées. 4 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 110 +001 111

5 Les entiers signés On peut régler le problème en examinant le bit de signe Si les 2 opérandes sont de signe contraire Soustraire à la plus grande valeur absolue la plus petite Le signe du résultat est celui de la plus grande valeur (prise en absolue) 5 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 =3-2 =1 = =2-1 =1 Ce n’est pas très pratique!

6 Complément à 2 6 Nombre 2 Valeur 0000+0 0001+1 0010+2 0011+3 0100+4 0101+5 0110+6 0111+7 Nombre 2 Valeur 1111 1110-2 1101-3 1100-4 1011-5 1010-6 1001-7 1000-8

7 Complément à 2 Implication pour l’addition 7 0101 + 1010 1111  (-1) 1011 + 0110 10001  1

8 Complément à 2 Inverse d’un nombre Inverser chaque bit et ajouter 1 au résultat 8 5 en binaire : 0101 Inverse les bits : 1010 Ajoute 1 : 1011

9 Complément à 2 Toute valeur signée hexadécimale Est positive si débute par [0-7] Est négative si débute par [8-F] La complémentarité à 2 fonctionne pour n’importe quelle base 9

10 Instructions arithmétiques 10

11 Instructions arithmétiques Addition Soustraction 11 addrs1, {rs2 | imm 13 }, rd addcrs1, {rs2 | imm 13 }, rd addcccrs1, {rs2 | imm 13 }, rd inc{imm 13,} rs1 inccc{imm 13,} rs1 subrs1, {rs2 | imm 13 }, rd subcrs1, {rs2 | imm 13 }, rd subcccrs1, {rs2 | imm 13 }, rd dec{imm 13,} rs1 deccc{imm 13,} rs1

12 Instructions arithmétiques Multiplication Division Négation 12 mulxrs1, {rs2 | imm 13 }, rd udivxrs1, {rs2 | imm 13 }, rd sdivxrs1, {rs2 | imm 13 }, rd negrs1 negrs1, rs2

13 Débordement de capacité (v) 13 0111 7 + 0110 6 1101 -3?

14 Débordement de capacité Il se produit un débordement dans une soustraction si les opérandes ont des signes différents et que le résultat est de signe contraire au premier opérande Une soustraction revient à faire une addition avec le complément à deux du second opérande Il ne peut y avoir de débordement si les opérandes sont de mêmes signes! 14 0111 7 1101 -3 - 1101 -3 0111 7 1010 -6? 0110 6?

15 Débordement de capacité 15

16 Débordement de capacité 16

17 Report (c) 17

18 Report Exemple avec un mot de 4 bits, addition de double-mot 18 27 +45 72 0000 0001 +0010 0011 11110 1011 +1101 1000 00111000 56! C 0011 +1 0100 01001000 72 Instructions SPARC addcc addccc bvs

19 Report Exemple avec un mot de 4 bits, soustraction de double-mot 19 87 -41 46 0000 0101 -0010 0011 10000 0111 -1001 11110 00111110 62! C 0011 0010 00101110 46 Instructions SPARC subcc subccc bvs Emprunt

20 Report Exemple avec un mot de 4 bits, soustraction (par l’addition de l’inverse) 20 87 +(-41) 46 1010 0101 +1101 10010 01110 0111 +0111 01110 00101110 46! C Le report est à 0!

21 Report Sur le SPARC, addccc ne fonctionne pas pour des opérandes de 64 bits L’addition s’effectue en 4 étapes 1. Effectuer l’addition des mots les moins significatifs, avec C et V; 2. Effectuer l’addition du mot le plus significatif du 2 e opérande et de C, avec C et V; 3. Effectuer l’addition du résultat et du mot le moins significatif, avec C et V; 4. Vérifier s’il y a eu débordement 21

22 Report 22 + =

23 Multiplication non signée 23

24 Multiplication non signée 24 01101000 +00011010 +00001101 =10001111143

25 Multiplication non signée 25 1101 1011 1101 1101 0000 1101 10001111

26 Multiplication non signée 26 00001011 Produit :

27 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 1. Si le bit le moins significatif du mot le moins significatif du produit vaut 1, ajouter le multiplicande au mot le plus significatif du produit, sinon ajouter 0 Conserver le bit C de cette addition 27 00001011 Produit : 11011011 Produit 2 : C=0 1101

28 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 2. Décaler le mot le plus significatif du produit d’une position vers la droite. Conserver la valeur du bit perdu La valeur du bit C précédent est insérée à gauche. 28 11011011 Produit : 01101011 Produit 2 : C=0 B=1

29 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 3. Décaler le mot le moins significatif du produit d’une position vers la droite. Introduire à gauche le bit perdu de l’étape précédente. 29 01101011 Produit : 01101101 Produit 2 : B=1

30 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 1. Si le bit le moins significatif du mot le moins significatif du produit vaut 1, ajouter le multiplicande au mot le plus significatif du produit, sinon ajouter 0 Conserver le bit C de cette addition 30 01101101 Produit : 00111101 Produit 2 : C=1 1101

31 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 2. Décaler le mot le plus significatif du produit d’une position vers la droite. Conserver la valeur du bit perdu La valeur du bit C précédent est insérée à gauche. 31 00111101 Produit : 10011101 Produit 2 : C=1 B=1

32 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 3. Décaler le mot le moins significatif du produit d’une position vers la droite. Introduire à gauche le bit perdu de l’étape précédente. 32 10011101 Produit : 10011110 Produit 2 : B=1

33 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 1. Si le bit le moins significatif du mot le moins significatif du produit vaut 1, ajouter le multiplicande au mot le plus significatif du produit, sinon ajouter 0 Conserver le bit C de cette addition 33 10011110 Produit : 10011110 Produit 2 : C=0 0000

34 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 2. Décaler le mot le plus significatif du produit d’une position vers la droite. Conserver la valeur du bit perdu La valeur du bit C précédent est insérée à gauche. 34 10011110 Produit : 01001110 Produit 2 : C=0 B=1

35 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 3. Décaler le mot le moins significatif du produit d’une position vers la droite. Introduire à gauche le bit perdu de l’étape précédente. 35 01001110 Produit : 01001111 Produit 2 : B=1

36 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 1. Si le bit le moins significatif du mot le moins significatif du produit vaut 1, ajouter le multiplicande au mot le plus significatif du produit, sinon ajouter 0 Conserver le bit C de cette addition 36 01001111 Produit : 00011111 Produit 2 : C=1 1101

37 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 2. Décaler le mot le plus significatif du produit d’une position vers la droite. Conserver la valeur du bit perdu La valeur du bit C précédent est insérée à gauche. 37 00011111 Produit : 10001111 Produit 2 : C=1 B=1

38 Multiplication non signée L’algorithme est donc Répéter n fois (n = nombre de bits, ici 4) 3. Décaler le mot le moins significatif du produit d’une position vers la droite. Introduire à gauche le bit perdu de l’étape précédente. 38 10001111 Produit : 10001111 Produit 2 : B=1 On obtient 143!

39 Multiplication signée 39

40 Division non signée Similaire à l’algorithme de la multiplication L’ordre des étapes est inversé On décale à gauche au lieu de décaler à droite Au lieu d’une addition, on fait une soustraction 40

41 Division non signée L’algorithme final est Initialiser le quotient avec le dividende Initialiser le reste à 0 Répéter n fois (n = nombre de bits) 1. Décaler d’une position vers la gauche la valeur du quotient. Le bit perdu est conservé pour l’étape suivante 2. Décaler d’une position vers la gauche la valeur du reste Le bit le moins significatif est remplacé par la valeur du bit perdu précédent 3. Soustraire le diviseur du reste 4. Si le résultat de la soustraction est négatif, mettre le bit le moins significatif du quotient à 0 et additionner le diviseur au reste, sinon mettre le bit le moins significatif du quotient à 1. 41

42 Division signée 42


Télécharger ppt "CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés 3 000+0 001+1 010+2 011+3 100-0 101 110-2 111-3 2 représentations pour le 0."

Présentations similaires


Annonces Google