• Aucun résultat trouvé

Chapitre 3 Arithmétique des ordinateurs

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 3 Arithmétique des ordinateurs"

Copied!
21
0
0

Texte intégral

(1)

Chapitre 3

Arithmétique des ordinateurs

Jean Privat

Université du Québec à Montréal

INF2170 — Organisation des ordinateurs et assembleur Automne 2013

(2)

Plan

1 Arithmétique

2 Instructions Pep/8

(3)

Plan

1 Arithmétique

2 Instructions Pep/8

(4)

Arithmétique

Définition

Science des nombres (αριθμός = nombre)

Opérations traditionnelles Addition et soustraction Multiplication et division

Exercices

1264 + 756 = ? 2567 - 666 = ?

(5)

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

(6)

Arithmétique en complément Analogie : Compteur de voiture

Décrémenter un compteur de voiture ? 00003

00002 00001 00000 99999 99998 99997

(7)

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

(8)

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

(9)

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

(10)

Calcul du complément en binaire

Méthode 1

compl(x) =28x

Méthode 2

Inverser les 0 et les 1 Ajouter 1 au résultat

(11)

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

(12)

Plan

1 Arithmétique

2 Instructions Pep/8

(13)

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

(14)

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

(15)

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)

(16)

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

(17)

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)

(18)

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

(19)

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

(20)

La semaine prochaine

Programmer en assembleur Pep/8 Directives

Instructions Symboles Adressages

(21)

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

Références

Documents relatifs

déterminer si un nombre entier est ou n’est pas multiple ou diviseur d’un autre nombre entier.

Dessine la flèche quand tu as utilisé la méthode du pour aller à.. RÉVISIONS Lis

[r]

donnés par deux de leurs diviseurs communs, l’un de ces diviseurs donne des quotiens premiers entre eux , celui-là sera nécessairement le plus grand des

[r]

[r]

Tout nombre entier supérieur ou égal à 2 peut se décomposer en un produit de facteurs premiers. Cette décomposition est unique.. 2) Exemple rédigé : Rendre une fraction

Tout le butin est reconstitué et partagé entre les survivants comme précédemment ; le cuisinier reçoit alors 4 pièces... naufrage ultérieur, seuls le butin, 6 pirates et le