Les instructions arithmétiques et logiques sont effectuées par l'unité arithmétique et logique. Il s'agit d'opération directement effectuées sur les bits de la donnée que l'on traite.
Sont comprises dans cette appellations:
- les instructions d'addition
- les instructions de soustraction
- les instructions de décalage
- les instructions de rotation
- les instructions logiques (ET, OU, ...)
Les opérations arithmétiques et logiques modifient l'état des indicateurs.
Instructions d'addition |
Les opérations arithmétiques se font de la même façon en binaire qu'en base décimale. C'est-à-dire que lorsque l'on dépasse la valeur maxi au niveau du bit n (lorsque l'on dépasse la valeur 1) on a une retenue ou un report au bit n+1.
Voyons voir cela sur un exemple:
0 | 0 | 0 | 1 | |
+ | 0 | 0 | 0 | 1 |
- | - | - | - | |
0 | 0 | 1 | 0 |
Sur un exemple un peu plus compliqué:
0 | 0 | 1 | 0 | |
+ | 0 | 0 | 1 | 1 |
- | - | - | - | |
0 | 1 | 0 | 1 |
Décalage et rotation |
Ces instructions permettent de décaler d'un côté ou de l'autre les bits des registres accumulateurs (AX et BX, et donc AH, AL, BH, BL). Cette opération qui semble inuile a en fait plusieurs applications très intéressantes, dont:
- permettre de lire un à un les bits du registre (car les bits sortant à gauche positionnent l'indicateur de retenue CR)
- permettre une multiplication par 2n (en effet le fait de décaler un nombre binaire d'un chiffre à gauche le multiplie par 2, ainsi en effectuant cette opération n fois on obtient une multiplication par 2n)
exemple:
00010 (2 en décimale)
00100 (on décale à gauche on obtient 4)
01000 (on décale à droite on obtient 8)- permettre une division par 2n (comme précédemment mais en effectuant une rotation sur la droite)
Une opération de décalage déplace chacun des bits d'un nombre binaire sur la gauche (ou la droite), mais ceux-ci sortent, c'est-à-dire qu'ils sont définitivement perdus, lorsqu'ils arrivent au bit de poids fort (ou de poids faible).
exemple:
0001110000
0011100000 (on décale d'un bit à gauche)
0111000000 (on décale d'un bit à gauche)
1110000000 (on décale d'un bit à gauche)
1100000000 (on décale d'un bit à gauche)
1000000000 (on décale d'un bit à gauche)Une opération de rotation agit comme une opération de décalage à la différence près que les bits qui sortent d'un côté rentrent de l'autre...
exemple:
0001110000
0011100000 (on effectue une rotation d'un bit à gauche)
0111000000 (on effectue une rotation d'un bit à gauche)
1110000000 (on effectue une rotation d'un bit à gauche)
1100000001 (on effectue une rotation d'un bit à gauche)
1000000011 (on effectue une rotation d'un bit à gauche)Les opérations courantes de rotation et de décalage sont les suivantes:
- RCL registre, 1 (Rotate Carry Left):
Effectue une rotation des bits sur la gauche en passant par l'indicateur de retenue CF. Le contenu de CF est introduit à droite, puis le bit de poids fort est copié dans CF.- RCR registre, 1 (Rotate Carry Right):
Effectue une rotation des bits sur la droite en passant par l'indicateur de retenue CF. Le contenu de CF est introduit à gauche, puis le bit de poids faible est copié dans CF.- ROL registre, 1 (Rotate Left):
Effectue une rotation des bits sur la gauche. Le bit de poids fort est copié dans CF et réintroduit à droite- ROR registre, 1 (Rotate Right):
Effectue une rotation des bits sur la droite. Le bit de poids faible est copié dans CF et réintroduit à gauche- SHL registre, 1 (Shift Left):
Décale les bits du registre indiqué de 1 bit vers la gauche. (Les bits sortants sont transférés dans l'indicateur de retenue CF mais ne sont pas réintroduits à droite)- SHR registre, 1 (Shift Right):
Décale les bits du registre indiqué de 1 bit vers la droite. (Les bits sortants sont transférés dans l'indicateur de retenue CF mais ne sont pas réintroduits à gauche)Les instructions RCL et RCR permettent de faire une lecture bit-à-bit du contenu du registre.
Les instructions SHL et SHR permettent de faire une multiplication par 2n sur des entiers naturels (pas sur des entiers relatifs car le bit de poids fort disparait dès la première rotation).
Instructions logiques |
Les instructions logiques sont au nombre de trois (ET, OU et OU Exclusif). Elles permettent de faire des opérations bit-à-bit sur des nombres binaires (c'est-à-dire en considérant chacun des bits indépendamment des autres, sans se soucier de la retenue).
Ce type d'instruction ce note de la manière suivante:
INSTRUCTION destination, source
destination désigne le registre ou l'adresse de la case mémoire qui contiendra le résultat de l'opération.
source peut ê aussi bien un registre, une constante ou une adresse.
- L'instruction AND (ET) multiplie les bits de même poids deux à deux et stocke le résultat dans le registre de destination. Cette instruction met donc le bit du résultat à 1 si les deux bits de même poids des de la source et de la destination sont tous deux à 1, sinon il le met à zéro.
exemple:
0 | 1 | 0 | 1 | |
ET | 0 | 1 | 1 | 0 |
- | - | - | - | |
0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | |
OU | 0 | 1 | 1 | 0 |
- | - | - | - | |
0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | |
- | - | - | - | |
0 | 0 | 1 | 1 |
Chacune de ces instructions a de très nombreuses applications, il serait impossible de toutes les énumérer. En voici quelques unes:
- Masquage: Il est possible de masquer, c'est-à-dire mettre à zéro tous les bits qui ne nous intéressent pas dans un nombre. Pour cela il faut créer une valeur masque: un nombre dont les bits de poids qui nous intéressent sont à 1, les autres à 0. Il suffit alors de faire un AND entre le nombre à masquer et le masque pour ne conserver que les bits auxquels on s'intéresse.
Par exemple, imaginons que l'on veuille masquer les 4 bits de poids faible (les 4 derniers bits) d'un nombre codé sur 8 bits (par exemple 10110101). Il suffit d'appliquer le masque 11110000, et l'on obtiendra 10110000. On ne conserve bien que les 4 premiers bits, les autres sont mis à zéro...- Inversion: Il est possible d'inverser tous les bits d'un nombre en faisant un XOR avec un nombre contenant que des 1.
Ajouter aux Favoris Ajouter aux votre page
Acceuil | Forum| Contactez-Nous | Annace |Chat| Music |Radios|Sockets |Protocoles|Windows NT
Langage C |Langage C++ | Assembleur | Java | Perl |Pascal/delphi | Visual basic|MERISE | SQL| JDBC| ODBC
ASP|CGI |HTML |DHTML |XML|Javascript |JSP |PHP|Servlets |VBScript |WAP |UNIX |Linux |MacOS|Windows 9x
Assemblage-PC |Modèle relationnel|Histoire-PC|Fonctionnement-PC|photo pour rire|MS-Dos|Architecture-PC
Flash MX |Word-2003|Power Point|Excel|Langage C|Langage Java|Visual Basic|La base XP | programming
Physique Arabic partie I|Programation en arabe|Physique Français|Internet| Sécurité Informatique
HTML |Agebre en Français|Math Français partie I|Physique Arabic partie II| الطرق العددية
Electricité| Math Français partie II|Math en Arabic|Agebre en Arabic| الأعداد العقدية
Tous les cours informatiques en vidéos |Droit Informatique |logiciels
Tous les cours physiques en vidéos |Microsoft office
Cours math en vidéos | Msn en ligne
TV Live
Autoformations les cours informatiques en vidéos gratuitement
:: Copyright © 2008 http://www.autoformations.co.cc All rights reserved ::