Chapitre 3 Arithmétique des ordinateurs
-
Upload
vuongthien -
Category
Documents
-
view
240 -
download
5
Transcript of Chapitre 3 Arithmétique des ordinateurs
Chapitre 3Arithmétique des ordinateurs
Jean PrivatUniversité du Québec à Montréal
INF2170 — Organisation des ordinateurs et assembleurAutomne 2013
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 1 / 21
Plan
1 Arithmétique
2 Instructions Pep/8
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 2 / 21
Plan
1 Arithmétique
2 Instructions Pep/8
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 3 / 21
ArithmétiqueDéfinition
Science des nombres (αριθμός = nombre)
Opérations traditionnellesAddition et soustractionMultiplication et division
Exercices1264 + 756 = ?2567 - 666 = ?345 - 1264 = ?
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 4 / 21
Arithmétique des ordinateursComme avec l’école primaire
On travaille en binaire et en hexadécimal
Exercices10011100112 + 10102 = ?95C16 + E116 = ?
Différence : pas de soustractionGestion différente des signes :Arithmétique en complémentLa soustraction est un cas particulier de l’addition
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 5 / 21
Arithmétique en complémentAnalogie : Compteur de voiture
Décrémenter un compteur de voiture ?00003000020000100000999999999899997
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 6 / 21
Arithmétique en complément
Le complément d’un nombreLe nombre de l’autre coté du 0
Et les négatifs alorsDécoupage (arbitraire) de l’espace00000 à 49999 : positifs50000 à 99999 : négatifs
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 7 / 21
Débordement
Nombre fini de chiffresLe domaine des nombres est fini
Débordement =Le résultat d’une opération est hors-domaineExemple 49999 + 2
Débordement du complémentUn nombre est complément de lui-mêmeUn nombre n’a pas de complément
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 8 / 21
Arithmétique en complémenten binaire8 bits
00000000 à 01111111 : nombres positifs10000000 à 11111111 : nombres négatifs
16 bits0000000000000000 à 0111111111111111 : positifs1000000000000000 à 1111111111111111 : négatifs
Détermination du signeLe bit de poids fort permet connaître le signe
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 9 / 21
Calcul du complémenten binaire
Méthode 1compl(x) = 28 − x
Méthode 2Inverser les 0 et les 1Ajouter 1 au résultat
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 10 / 21
Arithmétique en complémenten hexadécimal16 bits
max (32767) : 7FFFmin (-32768) : 8000
Détermination du signePremier chiffre : 0 à 7 →≥ 0 ; 8 à F →< 0
Calcul du complémentSoustraire chaque chiffre de F (1510)Ajouter 1 au résultat
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 11 / 21
Plan
1 Arithmétique
2 Instructions Pep/8
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 12 / 21
Addition
En Pep/8 : Instruction ADDrOpérande 1 en registre (A ou X)Opérande 2 en mémoire (ou dans l’instruction)Résultat rangé dans le registre (opérande 1 écrasée)
Exemple
LDA 42 , i ; Range 42 dans AADDA 999 , i ; A joute 999 dans ASTA la_bas , d ; Range A l a bas
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 13 / 21
Résultats intermédiairesCombiner plusieurs étapes de calcul
On accumule les résultats dans l’accumulateurParfois on utilise des mots mémoire supplémentaires
Exemple : t = x + y + z
LDA x , d ; Range x dans AADDA y , d ; A joute y dans AADDA z , d ; A joute z dans ASTA t , d ; Range A dans t
ExerciceCalculer x = a + b + c et y = a + b + d
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 14 / 21
NégationEn Pep/8 : Instruction NEGr
Opérande en registre (A ou X)Résultat rangé dans le registre (opérande écrasée)
Exemple
LDA 42 , i ; Range 42 dans ANEGA ; A = −ASTA la_bas , d ; Range A l a bas
ExercicesCalculer x = a-bCalculer y = (a+b)-(c+d)
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 15 / 21
SoustractionEn Pep/8 : Instruction SUBr
Opérande 1 en registre (A ou X)Opérande 2 en mémoire (ou dans l’instruction)Résultat rangé dans le registre (opérande 1 écrasée)
Exemple
LDA 42 , i ; Range 42 dans ASUBA 999 , i ; S o u s t r a i t 999 dans ASTA la_bas , d ; Range A l a bas
ExerciceCalculer (a+b)-(c+d)
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 16 / 21
Code de condition
Bits de status = info sur l’opérationN : le résultat est strictement négatifZ : le résultat est nul (zéro)V : il y a eu un débordement (overflow)C : le bit de retenue (carry)
AttentionChaque instruction peut affecter N, Z, V et C à safaçon (voir la documentation)
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 17 / 21
Détection de débordement
Débordement ssi l’un des cas suivantPositif + Positif → NégatifNégatif + Négatif → Positif
ExerciceDémontrer que Positif + Négatif est toujours sûr
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 18 / 21
Limites
Arithmétique flottanteBien plus compliqué (voir plus tard)
Pep/8Pas de multiplication ou de division→ il faudra les implémenter nous-même
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 19 / 21
La semaine prochaine
Programmer en assembleur Pep/8DirectivesInstructionsSymbolesAdressages
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 20 / 21
Bibliographie
Notes de coursChapitre 4 : Introduction à l’arithmétique surordinateur
LivreChapitre 4 et section 7.4
Programmes03-sommes.pep03-soustractions.pep
Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 21 / 21