You are on page 1of 21

Chapitre 3

Arithmtique des ordinateurs


Jean Privat
Universit du Qubec Montral
INF2170 Organisation des ordinateurs et assembleur
Automne 2013
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 1 / 21
Plan
1
Arithmtique
2
Instructions Pep/8
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 2 / 21
Plan
1
Arithmtique
2
Instructions Pep/8
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 3 / 21
Arithmtique
Dnition
Science des nombres ( = nombre)
Oprations traditionnelles
Addition et soustraction
Multiplication et division
Exercices
1264 + 756 = ?
2567 - 666 = ?
345 - 1264 = ?
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 4 / 21
Arithmtique des ordinateurs
Comme avec lcole primaire
On travaille en binaire et en hexadcimal
Exercices
1001110011
2
+ 1010
2
= ?
95C
16
+ E1
16
= ?
Dirence : pas de soustraction
Gestion dirente des signes :
Arithmtique en complment
La soustraction est un cas particulier de laddition
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 5 / 21
Arithmtique en complment
Analogie : Compteur de voiture
Dcrmenter un compteur de voiture ?
00003
00002
00001
00000
99999
99998
99997
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 6 / 21
Arithmtique en complment
Le complment dun nombre
Le nombre de lautre cot du 0
Et les ngatifs alors
Dcoupage (arbitraire) de lespace
00000 49999 : positifs
50000 99999 : ngatifs
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 7 / 21
Dbordement
Nombre ni de chires
Le domaine des nombres est ni
Dbordement =
Le rsultat dune opration est hors-domaine
Exemple 49999 + 2
Dbordement du complment
Un nombre est complment de lui-mme
Un nombre na pas de complment
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 8 / 21
Arithmtique en complment
en binaire
8 bits
00000000 01111111 : nombres positifs
10000000 11111111 : nombres ngatifs
16 bits
0000000000000000 0111111111111111 : positifs
1000000000000000 1111111111111111 : ngatifs
Dtermination du signe
Le bit de poids fort permet connatre le signe
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 9 / 21
Calcul du complment
en binaire
Mthode 1
compl(x) = 2
8
x
Mthode 2
Inverser les 0 et les 1
Ajouter 1 au rsultat
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 10 / 21
Arithmtique en complment
en hexadcimal
16 bits
max (32767) : 7FFF
min (-32768) : 8000
Dtermination du signe
Premier chire : 0 7 0 ; 8 F < 0
Calcul du complment
Soustraire chaque chire de F (15
10
)
Ajouter 1 au rsultat
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 11 / 21
Plan
1
Arithmtique
2
Instructions Pep/8
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 12 / 21
Addition
En Pep/8 : Instruction ADDr
Oprande 1 en registre (A ou X)
Oprande 2 en mmoire (ou dans linstruction)
Rsultat rang dans le registre (oprande 1 crase)
Exemple
LDA 42 , i ; Range 42 dans A
ADDA 999 , i ; Aj out e 999 dans A
STA l a_bas , d ; Range A l a bas
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 13 / 21
Rsultats intermdiaires
Combiner plusieurs tapes de calcul
On accumule les rsultats dans laccumulateur
Parfois on utilise des mots mmoire supplmentaires
Exemple : t = x + y + z
LDA x , d ; Range x dans A
ADDA y , d ; Aj out e y dans A
ADDA z , d ; Aj out e z dans A
STA t , d ; Range A dans t
Exercice
Calculer x = a + b + c et y = a + b + d
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 14 / 21
Ngation
En Pep/8 : Instruction NEGr
Oprande en registre (A ou X)
Rsultat rang dans le registre (oprande crase)
Exemple
LDA 42 , i ; Range 42 dans A
NEGA ; A = A
STA l a_bas , d ; Range A l a bas
Exercices
Calculer x = a-b
Calculer y = (a+b)-(c+d)
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 15 / 21
Soustraction
En Pep/8 : Instruction SUBr
Oprande 1 en registre (A ou X)
Oprande 2 en mmoire (ou dans linstruction)
Rsultat rang dans le registre (oprande 1 crase)
Exemple
LDA 42 , i ; Range 42 dans A
SUBA 999 , i ; S o u s t r a i t 999 dans A
STA l a_bas , d ; Range A l a bas
Exercice
Calculer (a+b)-(c+d)
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 16 / 21
Code de condition
Bits de status = info sur lopration
N : le rsultat est strictement ngatif
Z : le rsultat est nul (zro)
V : il y a eu un dbordement (overow)
C : le bit de retenue (carry)
Attention
Chaque instruction peut aecter N, Z, V et C sa
faon (voir la documentation)
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 17 / 21
Dtection de dbordement
Dbordement ssi lun des cas suivant
Positif + Positif Ngatif
Ngatif + Ngatif Positif
Exercice
Dmontrer que Positif + Ngatif est toujours sr
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 18 / 21
Limites
Arithmtique ottante
Bien plus compliqu (voir plus tard)
Pep/8
Pas de multiplication ou de division
il faudra les implmenter nous-mme
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 19 / 21
La semaine prochaine
Programmer en assembleur Pep/8
Directives
Instructions
Symboles
Adressages
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 20 / 21
Bibliographie
Notes de cours
Chapitre 4 : Introduction larithmtique sur
ordinateur
Livre
Chapitre 4 et section 7.4
Programmes
03-sommes.pep
03-soustractions.pep
Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 21 / 21