Les Principales Instructions Du 8086

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 18

Les Principales Instructions du

8086

3ème Année GTR et GIIA

Pr. Hayat SEMLALI

[email protected]
Les Principales Instructions du 8086

Les instructions de la famille Intel 8086 sont classées en 6 catégories :

 Instructions de transfert

 Instructions arithmétiques

 Instructions logiques

 Instructions de manipulation de bits

 Instructions de branchement

 Instructions de contrôle et de gestion de la pile

2 16/05/2023
I. Instructions de transfert

Elles permettent de déplacer des données d’une source vers une destination:

- registre vers mémoire ;

- registre vers registre ;

- mémoire vers registre.

Remarque: le microprocesseur 8086 n’autorise pas les transferts de mémoire vers mémoire

(pour ce faire, il faut passer par un registre intermédiaire).

Syntaxe : MOV destination, source

Remarque : MOV est l’abréviation du verbe « to move » : déplacer.

Il existe différentes façons de spécifier l’adresse d’une case mémoire dans une instruction: ce
sont les modes d’adressage.
3 16/05/2023
I. Instructions de transfert

 Exemples

MOV AX,BX: Charge le contenu du registre BX dans le registre AX. Dans ce cas, le transfert se
fait de registre à registre (Mode registre).

MOV AL,12h: Charge le registre AL avec la valeur 12h. La donnée est fournie immédiatement
avec l’instruction (adressage immédiat).

MOV BL,[1200h]: Transfère le contenu de la case mémoire d’adresse effective (offset) 1200h vers le
registre BL. L’instruction comporte l’adresse de la case mémoire où se trouve la
donnée (Adressage direct).

L’adresse effective représente l’offset de la case mémoire dans le segment de


données (segment dont l’adresse est contenue dans le registre DS) : segment par
défaut.
4 16/05/2023
I. Instructions de transfert

 Cas de l’adressage basé

MOV AL,[BX]: Transfère la donnée dont l’offset est contenu dans le registre de base BX

vers le registre AL. Le segment associé par défaut au registre BX est le

segment de données : on dit que l’adressage est basé sur DS.

MOV AL,[BP] : le segment par défaut associé au registre de base BP est le segment de

pile. Dans ce cas, l’adressage est basé sur SS.

5 16/05/2023
I. Instructions de transfert
 Cas de l’adressage indexé

Semblable à l’adressage basé, sauf que l’offset est contenu dans un registre d’index SI ou
DI, associés par défaut au segment de données.

MOV AL,[SI] : Charge le registre AL avec le contenu de la case mémoire dont l’offset est
contenu dans SI .

MOV [DI], BX : Charge les cases mémoire d’offset DI et DI + 1 avec le contenu du


registre BX.

Remarque: une valeur constante peut éventuellement être ajoutée aux registres de base ou
d’index pour obtenir l’offset.

Exemple:

MOV [SI+100 h], AX qui peut aussi s’écrire


6 16/05/2023
MOV [SI][100 h], AX
II. Instructions arithmétiques

Les instructions arithmétiques de base sont l’addition, la soustraction, la multiplication et la

division qui incluent diverses variantes. Plusieurs modes d’adressage sont possibles.

Addition:

ADD opérande1, opérande2

L’opération effectuée est : opérande1  opérande1 + opérande2.

 Exemples

ADD AH,[1100h] : Ajoute le contenu de la case mémoire d’offset 1100h à l’accumulateur AH

(Adressage direct).

ADD AH,[BX] : Ajoute le contenu de la case mémoire pointée par BX à l’accumulateur

7 AH (Adressage basé). 16/05/2023


II. Instructions arithmétiques
Soustraction:

SUB opérande1, opérande2

L’opération effectuée est : opérande1  opérande1 - opérande2.

Multiplication:

MUL opérande

où opérande est un registre ou une case mémoire.

Cette instruction effectue la multiplication du contenu de AL par une opérande sur 1 octet ou

du contenu de AX par une opérande sur 2 octets.

Le résultat est placé dans AX si les données à multiplier sont sur 1 octet (résultat sur 16 bits),

8 dans (DX,AX) si elles sont sur 2 octets (résultat sur 32bits). 16/05/2023
II. Instructions arithmétiques

 Exemple 1

MOV AL,51

MOV BL,32

MUL BL

 AX = 51 × 32

 Exemple 2

MOV AX, 4253

MOV BX,1689

MUL BX

 (DX, AX) = 4253 × 1689


9 16/05/2023
II. Instructions arithmétiques
Division :

DIV opérande

où opérande est un registre ou une case mémoire.

Cette instruction effectue la division du contenu de AX par une opérande sur 1 octet ou le contenu

de (DX:AX) par une opérande sur 2 octets.

Résultat : si l’opérande est sur 1 octet, alors AL = quotient et AH = reste ;

si l’opérande est sur 2 octets, alors AX = quotient et DX = reste.

 Exemple 1

MOV AX,35
MOV BL,10
DIV BL
 AL = 3 (quotient) et AH = 5 (reste)
10 16/05/2023
II. Instructions arithmétiques

 Exemple 2

MOV DX,0

MOV AX,1234

MOV BX,10

DIV BX

 AX = 123 (quotient) et DX = 4 (reste)

 Autres instructions arithmétiques

ADC : addition avec retenue ;

INC : incrémentation d’une unité ;

DEC : décrémentation d’une unité .


11 16/05/2023
III. Instructions Logiques

Ce sont des instructions qui permettent de manipuler des données au niveau des bits. Les

opérations logiques de base sont :

- ET;

- OU;

- OU exclusif ;

- Complément à 1;

- Complément à 2;

12 16/05/2023
III. Instructions Logiques

ET logique:

AND opérande1, opérande2

L’opération effectuée est : opérande1  opérande1 ET opérande2.

 Exemple

MOV AL,10010110b AL = 1 0 0 1 0 1 1 0
MOV BL,11001101b  BL = 1 1 0 0 1 1 0 1
AND AL,BL AL = 1 0 0 0 0 1 0 0

Opérande1 et opérande2 doivent être de même taille. Ils peuvent être des registres de 8 ou 16
bits ou des cases mémoire.

Même chose pour les instructions: OR, XOR, NOT et NEG.

13 16/05/2023
IV. Instructions de manipulation de bits

Ces instructions déplacent d’un certain nombre de positions les bits d’un mot vers la gauche ou vers

la droite.

- Dans les décalages, les bits qui sont déplacés sont remplacés par des zéros.

- Dans les rotations, les bits déplacés dans un sens sont réinjectés de l’autre côté du mot.

 Décalage logique vers la droite (Shift Right):

SHR opérande, n

Cette instruction décale l’opérande de n positions vers la droite.

 Exemple

MOV AL,11001011b
SHR AL,1

 Entrée d’un 0 à la place du bit de poids fort ;


14 16/05/2023
Le bit sortant passe à travers l’indicateur de retenue CF.
IV. Instructions de manipulation de bits

 Rotation à droite (Rotate Right)

ROR opérande, n

Cette instruction décale l’opérande de n positions vers la droite et réinjecte par la gauche les

bits sortant.

Exemple :

MOV AL,11001011b

ROR AL,1

 Réinjection du bit sortant qui est copié dans l’indicateur de retenue CF.
15 16/05/2023
IV. Instructions de manipulation de bits
 Rotation à droite avec passage par l’indicateur de retenue (Rotate Right through Carry)

RCR opérande, n

Cette instruction décale l’opérande de n positions vers la droite en passant par l’indicateur de

retenue CF.

 Exemple

MOV AL, 11001011b


RCR AL,1

 Le bit sortant par la droite est copié dans l’indicateur de retenue CF et la valeur précédente
de CF est réinjectée par la gauche.

16 16/05/2023
V. Instructions de branchement

 JMP Etiquette

Effectue un saut inconditionnel à l’instruction marquée par Etiquette.

 CALL Etiquette

Effectue un appel au sous-programme marqué par Etiquette. Le sous-programme appelé doit


obligatoirement se terminer par l’instruction de retour RET.

 CMP destination, source

Effectue l’opération: destination – source et positionne les drapeaux du registre d’état. Source
et destination ne sont pas modifiés cette instruction précède un saut conditionnel.

 JE Etiquette

Effectue un saut à Etiquette si égal.

CMP AL,5Ah
JE suite (saut à suite si AL=5Ah)

17 16/05/2023
V. Instructions de branchement

 JNE Etiquette

Effectue un saut à Etiquette si différent.

CMP SI,3B00h
JNE boucle (saut à boucle si SI est différent 3B00h)

 JL Etiquette

Effectue un saut à Etiquette si inférieur.

CMP CL,30h
JL boucle (saut à boucle si CL< 30h)

 JZ Etiquette

Effectue un saut à Etiquette si le drapeau ZF est à 1.

ADD AL, 14h


JZ boucle (Saut à boucle si le résultat est nul)

18 16/05/2023

Vous aimerez peut-être aussi