1- Rappel : les systèmes de numération
1.1 Le binaire
On a choisis d’associer au bit le plus à droite d’un paquet de bit, aussi appelé bit de poids faible, la valeur 2^ 0 = 1, le bit venant à sa gauche représentant une valeur deux fois plus élevée, 2^ 1 = 2 ainsi de suite…. jusqu’au bit le plus à gauche, aussi appelé le bit de poids fort.
EXEMPLE:
à la valeur binaire 1011 correspond donc la valeur décimale 11.
Par la suite pour éviter, tout malentendu on notera les valeurs binaires avec un % devant, 11 (décimal) s’écrira donc %1011 en binaire.
Cette notation est utilisée dans de nombreux langages de programmation ( pour l’assembleur, on fera suivre la valeur binaire de b , 11 (décimal) s’écrira 1011b).
1.2 L’hexadécimal
Tous comme on peut dire que le binaire constitue un système de codage en base 2 ( 0 ou 1 cela fait deux états possibles , le décimal un système en base 10 ( 0 1 2 3 4 5 6 7 8 9 => 10 états possibles ) vous l’aurez compris l’hexadécimal constitue un système base 16, pour représenter les 10 première valeurs, la notations est identique à celle du système décimal et pour les 6 autres on prend les 6 premières lettres de l’alphabet.
1.3 Opérations Arithmétiques
On peut tout comme avec le décimal effectuer des opérations standards tout comme l’addition, la soustraction, ou la multiplication:
1. 3. 1 L’addition
En décimal (un rappel sûrement inutile mais qui clarifie des choses…)
Retenue 11
1er nombre 127
2eme nombre +96
résultat 223
En binaire on procède de la même façon en respectant les règles suivantes:
%0+% 0=% 0
%0+% 1=% 1
%1+% 0=% 1
1%+% 1=% 0 et je retient 1
1.3.2 Les dépassements dans l’addition
prenons un exemple d’addition:
111
160 %10100000
+ 100 %01100100
= 4 %00000100
Visiblement, le résultat est faux, du moins c’est ce que vous dirai votre petit frère de 6 ans qui excelle au cour préparatoire. En regardant de plus prés, on peut se rendre compte qu’il nous reste une retenue, il faut donc en faire quelque chose…
L’idée immédiate que ce cas susciterai est la bonne, il suffit de créer un 9e bit, qui sera alors égal à la retenue, notre résultat s’écrit alors%100000100, ce qui donne :
2^ 8= 256 + 2^ = 4 = 260 ce qui est le résultat attendu.
1.3.3 Les dépassements dans la multiplication
La multiplication binaire, du moins pour les nombres positifs, se résout exactement comme la multiplication décimale, nous allons donc passer directement aux problèmes de dépassement.
Relation apprise au collège (a^ x)*( a^ y)= a^( x+ y).
Nous savons aussi que l’on peut représenter sur p bits 2^ p valeursdifférentes, par exemple sur 8 bits nous pouvons représenter 256 valeurs différentes soit de 0 à 255.Donc pour p bits la valeur maximale vaudra 2^ p – 1.
Support de cours assembleur les systèmes de numération (1504 KO) (Cours DOC)