21
Chapitre 3 Arithmétique des ordinateurs Jean Privat Université du Québec à Montréal INF2170 — Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 1 / 21

Chapitre 3 Arithmétique des ordinateurs

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Chapitre 3 Arithmétique des ordinateurs

Plan

1 Arithmétique

2 Instructions Pep/8

Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 2 / 21

Page 3: Chapitre 3 Arithmétique des ordinateurs

Plan

1 Arithmétique

2 Instructions Pep/8

Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 3 / 21

Page 4: Chapitre 3 Arithmétique des ordinateurs

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

Page 5: Chapitre 3 Arithmétique des ordinateurs

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

Page 6: Chapitre 3 Arithmétique des ordinateurs

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

Page 7: Chapitre 3 Arithmétique des ordinateurs

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

Page 8: Chapitre 3 Arithmétique des ordinateurs

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

Page 9: Chapitre 3 Arithmétique des ordinateurs

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

Page 10: Chapitre 3 Arithmétique des ordinateurs

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

Page 11: Chapitre 3 Arithmétique des ordinateurs

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

Page 12: Chapitre 3 Arithmétique des ordinateurs

Plan

1 Arithmétique

2 Instructions Pep/8

Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 12 / 21

Page 13: Chapitre 3 Arithmétique des ordinateurs

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

Page 14: Chapitre 3 Arithmétique des ordinateurs

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

Page 15: Chapitre 3 Arithmétique des ordinateurs

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

Page 16: Chapitre 3 Arithmétique des ordinateurs

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

Page 17: Chapitre 3 Arithmétique des ordinateurs

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

Page 18: Chapitre 3 Arithmétique des ordinateurs

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

Page 19: Chapitre 3 Arithmétique des ordinateurs

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

Page 20: Chapitre 3 Arithmétique des ordinateurs

La semaine prochaine

Programmer en assembleur Pep/8DirectivesInstructionsSymbolesAdressages

Jean Privat (UQAM) 03 — Arithmétique INF2170 — Automne 2013 20 / 21

Page 21: Chapitre 3 Arithmétique des ordinateurs

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