Chapitre 3
Arithmétique des ordinateurs
Jean Privat
Université du Québec à Montréal
INF2170 — Organisation des ordinateurs et assembleur Automne 2013
Plan
1 Arithmétique
2 Instructions Pep/8
Plan
1 Arithmétique
2 Instructions Pep/8
Arithmétique
Définition
Science des nombres (αριθμός = nombre)
Opérations traditionnelles Addition et soustraction Multiplication et division
Exercices
1264 + 756 = ? 2567 - 666 = ?
Arithmétique des ordinateurs
Comme avec l’école primaire
On travaille en binaire et en hexadécimal
Exercices
10011100112 + 10102 = ? 95C16 + E116 = ?
Différence : pas de soustraction Gestion différente des signes : Arithmétique en complément
La soustraction est un cas particulier de l’addition
Arithmétique en complément Analogie : Compteur de voiture
Décrémenter un compteur de voiture ? 00003
00002 00001 00000 99999 99998 99997
Arithmétique en complément
Le complément d’un nombre Le nombre de l’autre coté du 0
Et les négatifs alors
Découpage (arbitraire) de l’espace 00000 à 49999 : positifs
50000 à 99999 : négatifs
Débordement
Nombre fini de chiffres
Le domaine des nombres est fini
Débordement =
Le résultat d’une opération est hors-domaine Exemple 49999 + 2
Débordement du complément
Un nombre est complément de lui-même Un nombre n’a pas de complément
Arithmétique en complément en binaire
8 bits
00000000 à 01111111 : nombres positifs 10000000 à 11111111 : nombres négatifs
16 bits
0000000000000000 à 0111111111111111 : positifs 1000000000000000 à 1111111111111111 : négatifs Détermination du signe
Le bit de poids fort permet connaître le signe
Calcul du complément en binaire
Méthode 1
compl(x) =28 −x
Méthode 2
Inverser les 0 et les 1 Ajouter 1 au résultat
Arithmétique en complément en hexadécimal
16 bits
max (32767) : 7FFF min (-32768) : 8000
Détermination du signe
Premier chiffre : 0 à 7 →≥ 0 ; 8 à F →< 0
Calcul du complément
Soustraire chaque chiffre de F (1510) Ajouter 1 au résultat
Plan
1 Arithmétique
2 Instructions Pep/8
Addition
En Pep/8 : Instruction ADDr 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 4 2 , i ; Range 42 d a n s A ADDA 9 9 9 , i ; A j o u t e 999 d a n s A STA l a _ b a s , d ; Range A l a b a s
Résultats intermédiaires
Combiner plusieurs étapes de calcul
On accumule les résultats dans l’accumulateur
Parfois on utilise des mots mémoire supplémentaires
Exemple : t = x +y +z
LDA x , d ; Range x d a n s A ADDA y , d ; A j o u t e y d a n s A ADDA z , d ; A j o u t e z d a n s A STA t , d ; Range A d a n s t
Exercice
Négation
En Pep/8 : Instruction NEGr Opérande en registre (A ou X)
Résultat rangé dans le registre (opérande écrasée)
Exemple
LDA 4 2 , i ; Range 42 d a n s A
NEGA ; A = −A
STA l a _ b a s , d ; Range A l a b a s
Exercices
Calculer x = a-b
Calculer y = (a+b)-(c+d)
Soustraction
En 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 4 2 , i ; Range 42 d a n s A
SUBA 9 9 9 , i ; S o u s t r a i t 999 d a n s A STA l a _ b a s , d ; Range A l a b a s
Exercice
Code de condition
Bits de status = info sur l’opération N : le résultat est strictement négatif Z : le résultat est nul (zéro)
V : il y a eu un débordement (overflow) C : le bit de retenue (carry)
Attention
Chaque instruction peut affecter N, Z, V et C à sa façon (voir la documentation)
Détection de débordement
Débordement ssi l’un des cas suivant Positif + Positif → Négatif
Négatif + Négatif → Positif Exercice
Démontrer que Positif + Négatif est toujours sûr
Limites
Arithmétique flottante
Bien plus compliqué (voir plus tard)
Pep/8
Pas de multiplication ou de division
→ il faudra les implémenter nous-même
La semaine prochaine
Programmer en assembleur Pep/8 Directives
Instructions Symboles Adressages
Bibliographie
Notes de cours
Chapitre 4 : Introduction à l’arithmétique sur ordinateur
Livre
Chapitre 4 et section 7.4
Programmes
03-sommes.pep 03-soustractions.pep