Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager
Les instructions arithmétiques et logiques sont effectuées par l'unité arithmétique et logique. Il s'agit d'opérations directement effectuées sur les bits de la donnée que l'on traite.

Sont comprises dans cette appellation :

  • 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 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 inutile 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 à gauche à nouveau, 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 disparaît 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 se 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 être aussi bien un registre, une constante ou une adresse.

  • L'instruction AND (ET) additionne 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 bits de même poids 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
  • L'instruction OR (OU) met donc le bit du résultat à 0 si les deux bits de même poids de la source et de la destination sont tous deux à 0, sinon il le met à un.
    exemple :
        0 1 0 1
    OU  0 1 1 0
        - - - -
        0 1 1 1
  • L'instruction XOR (OU Exclusif) met le bit du résultat à 1 si un des deux bits de même poids de la source et de la destination est égal à 1 (mais pas les deux), dans les autres cas il le met à zéro.
    exemple :
        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 ne contenant que des 1.


Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « Instructions arithmétiques et logiques en assembleur » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Cherche logiciel d'assemblage de video (Résolu) Bonjour, Tout d'abord désolé si ce n'est pas le bon forum pour ma recherche. Et donc comme l'indique le titre je recherche un logiciel pour assembler des videos. Comme des films en plusieurs partie. Les videos que je possede sont au format AVI. Donc... www.commentcamarche.net/forum/affich-7279173-cherche-logiciel-d-assemblage-de-video
Logiciel d'assemblage de piste audio .fr Bonjour, je narrive pas a telecharger des telechargements du site aidez moi a trouvez un logiciel assembleur de chanson exp. deux en un que je puisse l'etulisez www.commentcamarche.net/forum/affich-11642002-logiciel-d-assemblage-de-piste-audio-fr
Logiciel pour couper et assembler des musique Bonjour, Je recherche un logiciel windows qui me permette de pouvoir découper des sons et ensuite de pouvoir les assembler avec d'autres musiques pour créer un "tout" cohérent. En d'autres termes par exemple j'ai deux musiques. Je veux commencer la... www.commentcamarche.net/forum/affich-12009825-logiciel-pour-couper-et-assembler-des-musique
[Photofiltre]Réaliser un assemblage de 2 imagesPhotofiltre est un logiciel de retouche d'image. Cette astuce fonctionne aussi bien avec Photofiltre qu'avec Photofiltre Studio Dans ce cas précis, Photofiltre va permettre d'assembler un collage c'est-à-dire de coller une deuxième image (en... www.commentcamarche.net/faq/sujet-7719-photofiltre-realiser-un-assemblage-de-2-images
Compiler un programme assembleur avec NasmAvec Linux Etape 1. Créer un fichier source Etape 2. Assembler le fichier source Etape 3. Création de l'executable Etape 4. Execution du programme Avec windows Etape 1. Installer les logiciels nécessaires Etape 2. Créer un fichier... www.commentcamarche.net/faq/sujet-9836-compiler-un-programme-assembleur-avec-nasm
[Logiciels] Rassembler un fichier XTMUn fichier XTM est un fichier coupé en morceaux avec le logiciel XtremSplit, téléchargeable à l'adresse suivante : Télécharger Xtremsplit www.commentcamarche.net/faq/sujet-3794-logiciels-rassembler-un-fichier-xtm
Assemblage d'imagesbonjour , nouvelle dans ce site , novice aussi en informatique , 74 ans ...... forums très intéressant, je fais appel à vous , merci d'avance photos : logiciel PHOTO EXPRESS ET PHOTO FILTRE je veux assembler 2 photos : portraits ( qui se trouvent... www.commentcamarche.net/forum/affich-1296491-assemblage-d-images
Assembler photobonjour à tous... alors voila je cherche un logiciel gratuit permettant d'assembler par exemple 9 photos en une seule... assembler les 9 photos comme une mosaique...j'ai essayé avec photofiltre mais j'ai pas réussi...j'ai essayé avec... www.commentcamarche.net/forum/affich-3390064-assembler-photo
Logiciel assemblage fichier mpgBonjour, Je recherche un logiciel pour assembler des fichiers mpg par exemple un fichier mpg en 2 partie se retrouve complet. Merci beaucoup. www.commentcamarche.net/forum/affich-7876682-logiciel-assemblage-fichier-mpg
Télécharger AAA Logo 2009AAA Logo est en premier lieu un outil de création de logo en tout genre. Il ne faut pas une connaissance approfondie en le domaine pour pouvoir le maîtriser, il est intuitif et pratique. En plus de la création de logo, il permet de créer la plupart... www.commentcamarche.net/telecharger/telecharger-34056341-aaa-logo-2009
Télécharger Pilote Logitech QuickCamPilote de Webcam QuickCam de Logitech pour les systèmes Microsoft Windows XP et Windows Vista 32 bit. www.commentcamarche.net/telecharger/telecharger-34056606-pilote-logitech-quickcam
Télécharger Driver Logitech CameraAvis à tous ceux qui possèdent une webcam de chez Logitech, voici le pilote standard mis à jour supportant la majorités des webcams de la gamme. www.commentcamarche.net/telecharger/telecharger-34056973-driver-logitech-camera
Logitech QuickCam MessengerUSB, 30 fps, Mode photographie, Résolution vidéo maximale: , Microphone, Mise au point: , Interface:USB, Logicels inclus: , Images par seconde:30 Fps, Divers: , Couleur: , Compatibilité:  www.commentcamarche.net/guide/109674-logitech-quickcam-messenger
Logitech QuickCam Communicate STX WebcamUSB, 30 fps, Résolution vidéo maximale:640 x 480 Pixels, Mode photographie, Mise au point: , Microphone, Logicels inclus: , Divers: , Images par seconde:30 Fps, Interface:USB, Couleur: , Compatibilité:Microsoft Windows 98SE/2000/ME/XP www.commentcamarche.net/guide/362542-logitech-quickcam-communicate-stx-webcam
Liste des instructions en assembleurTableau des principales instructions en assembleur Voici une liste (non exhaustive) des principales instructions en assembleur des processeurs 80x86, ainsi que du code machine qui leur est associé et de leur taille en mémoire. Les valeurs val et... www.commentcamarche.net/contents/asm/liste.php3
Branchements en assembleurOn appelle saut (ou branchement) en assembleur le fait de passer à une instruction autre que celle qui suit celle en cours en mémoire. En effet, en temps normal (c'est-à-dire sans instruction contraire) le processeur exécute les instructions... www.commentcamarche.net/contents/asm/saut.php3
Les procédures en assembleurLa notion de procédure En langage assembleur, on appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la procédure. Cette notion de sous-programme est généralement appelée fonction dans d'autres... www.commentcamarche.net/contents/asm/procedure.php3