Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parVirginie Truchon Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.