Académique Documents
Professionnel Documents
Culture Documents
de l’Ingénieur
Le Microprocesseur
Intel 8086
2020/2021
Introduction générale
?
Qu’est-ce qu’un Microprocesseur
2
Le Microprocesseur Intel 8086
?
Qui est-ce qu’un Bus, une interruption et une mémoire
3
Le Microprocesseur Intel 8086
?
Organisation de l’espace mémoire adressable
Les registres
4
Le Microprocesseur Intel 8086
Les modes d’adressage
8086
possède 7 modes d’adressage
8086
Instructions Arithmétiques
Instructions Logiques
Instructions de Branchement
Instructions de Transfert
6
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
Elles permettent de déplacer des données d’une source vers une destination :
Registre vers mémoire
Registre vers registre MOV destination, source
Mémoire vers registre
7
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
Exemples:
MOV AL, 21h : Charger 21h dans le registre AL
XCHG OD, OS
8
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
PUSH Op // PUSH source (Sauvegarde « source»)
Empiler l’opérande Op (Op doit être un opérande 16 bits, Source = registre ou case mémoire dont
Dépiler dans l’opérande Op (Op doit être un opérande 16 bits, Destination = registre ou case
mémoire auquel est affectée la valeur retirée du sommet de la pile)
Copie les deux cases mémoire pointée par SP dans
l'opérande Op
Incrémente SP de 2 octets
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
PUSH Op // PUSH source POP Op // POP destination
10
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
Exemples:
(a) Situation de la pile après empilement des
registres AX, BX et CX
(b) Situation de la pile après empilement du
registre DX
(c) Situation de la pile après un dépilement.
On remarquera que DX reste dans la
mémoire mais il ne fait plus partie de la
pile. La pile s'arrête à son sommet qui est
pointé par le pointeur de pile.
(d) Situation de la pile après empilement du
registre BP. On remarque que la valeur
Fonctionnement d’une pile BP écrase la valeur DX dans la mémoire.
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Les instructions arithmétiques de base sont l’addition, la soustraction, la multiplication et la division
Addition
ADD Od, Os Additionne l'opérande source et l'opérande destination avec résultat dans l'opérande
destination
Exemples: ADD AX,123h (A.I) ADD AX,BX (AR) ADD [123h],AX (A.D) ADD BX,[SI] (A.I)
ADC Od, Os Additionne l'opérande source, l'opérande destination et le carry avec résultat dans l'opérande
destination
12
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Soustraction
SUB Od, Os Soustrait l'opérande source et l'opérande destination avec résultat dans l'opérande destination.
SBB Od, Os Soustrait l'opérande source et le curry de l'opérande destination avec résultat dans l'opérande
destination
CMP Od, Os Compare (soustrait) les opérandes Os et Od et positionne les drapeaux en fonction du résultat.
Rq : L’opérande Od n’est pas modifié
13
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Multiplication
MUL Op
Cette instruction effectue la multiplication du contenu de AL par un opérande sur 1 octet ou du contenu
de
AX par un opérande sur 2 octets.
Le résultat est placé dans AX (AH, AL) si les données à multiplier sont sur 1 octet (résultat sur 16 bits),
dans (DX,AX) si elles sont sur 2 octets (résultat sur 32 bits).
Rq : L'opérande Op ne peut pas être une donnée, c’est soit un registre soit une position mémoire, dans ce
dernier cas, il faut préciser la taille (byte ou word)
14
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Multiplication
Exemples:
Division
DIV Op
Effectue la division AX/Op8 ou (DX/AX)/Op16 selon la taille de Op qui doit être soit un registre soit une
mémoire. Dans le dernier cas il faut préciser la taille de l’opérande.
Division
Exemples:
mov ax,35 (23h) mov dx,0 ; DX:AX (32bits) diviser par BX (16bits)
mov bl,10 mov ax,1234 (4D2h)
div bl mov bx,10
→ AL = 3 (quotient) et AH = 5 (reste) div bx
→ AX = 123 (7B) (quotient) et DX = 4 (reste)
17
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Division
Exercice - 1
On désire additionner :
19
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques
Exercice - 2
(200/60 + 3*20 – 5)
20
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les 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
21
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
Exemples:
mov al,10010110B
mov bl,11001101B
and al, bl
MOV AX,125h
AND AL, AH
22
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
OU Logique OR Od, Os
Exemples:
mov ah, 01011000B met à 1 le bit de faible
OR AL, 1H
or ah, 00001101B poids de AL
MOV AX,105h
OR AH, AL
23
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
Exemples:
mov al, 25
al = ?
xor al, al
24
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
Complément à 1 NOT OP
Complément à 1 de l’opérande
Exemples:
mov al, 10010001B
al 01101110B
not al
Complément à 2 NEG OP
Complément à 2 de l’opérande
Exemples: mov al,25
mov bl,12
al = 25 + (−12) = 13
neg bl
add al,bl
25
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
Exercice
?
une séquence d’instruction qui fait :
AX + BX
26
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques
Solution
27
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les masques Logiques
Le 8086 ne possède pas d'instructions permettant d'agir sur un seul bit.
Les masques logiques sont des astuces qui permettent d'utiliser les instructions
logiques bien spécifiques pour agir sur un bit spécifique d'un octet (byte) out d'un mot
(word)
Forcer un bit à 0 :
Application du ‘‘AND’’ : masquage de bits pour mettre à zéro certains bits dans un mot.
Forcer un bit à 1 :
Application du ‘‘OR’’ : mise à 1 d’un ou plusieurs bits dans un mot.
Inverser un bit :
Application du ‘‘XOR’’ : mise à zero d’un registre.
28
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les masques Logiques
Forcer un bit à 0
Pour forcer un bit à 0 sans modifier les autres bits, on utilise l'opérateur logique AND et
ses propriétés :
x AND 0 = 0 (0 = élément absorbant de AND)
x AND 1 = x (1 = élément neutre de AND)
On fait un AND avec une valeur contenant des 0 en face des bits qu'il faut forcer à 0 et
des 1 en face des bits qu'il ne faut pas changer.
29
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les masques Logiques
Forcer un bit à 1
Pour forcer un bit à 1 sans modifier les autres bits, on utilise l'opérateur logique OR et
ses propriétés :
x OR 1 = 1 (1 = élément absorbant de OR)
x OR 0 = x (0 = élément neutre de OR)
On fait un OR avec une valeur contenant des 1 en face des bits qu'il faut forcer à 1 et
des 0 en face des bits qu'il ne faut pas changer.
Exemples: Dans le mot 10110001B on veut mettre à 1 les bits
1 et 3 sans modifier les autres bits.
30
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les masques Logiques
Inverser un bit
Pour inverser la valeur d'un bit sans modifier les autres bits, on utilise l'opérateur
logique XOR et ses propriétés :
x XOR 1 = x
x XOR 0 = x (0 = élément neutre de XOR)
On fait un XOR avec une valeur contenant des 1 en face des bits qu'il faut inverser et
des 0 en face des bits qu'il ne faut pas changer.
31
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
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. Il y a:
Les décalages logiques (opérations non signées).
Les décalages arithmétiques (opérations signées).
INST Opérande, k
L’opérande k peut etre soit une constante (immediat) soit le registre CL ou CX.
Dans les rotations, les bits déplacés dans un sens sont réinjectés de l’autre côté du mot.
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Exemples:
Entrée d’un 0 à la place du bit de poids fort ; le bit
mov al,11001011B
sortant passe à travers l’indicateur de retenue CF
shr al,1
33
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Exemples:
mov al,11001011B Entrée d’un 0 à la place du bit de poids faible; le bit
shl al,1 sortant passe à travers l’indicateur de retenue CF
34
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
35
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Cette instruction décale l’opérande de k positions vers la droite et réinjecte par la gauche
les bits sortant.
Exemples:
mov al,11001011B Réinjection du bit sortant qui est copié dans l’indicateur de retenue CF.
ror al,1
36
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Cette instruction décale l’opérande de k positions vers la gauche et réinjecte par la droite
les bits sortant.
Exemples:
mov al,11001011B Réinjection du bit sortant qui est copié dans l’indicateur de retenue CF.
rol al,1
37
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Cette instruction décale l’opérande de k positions vers la droite en passant par l’indicateur de
retenue CF.
Exemples:
38
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de décalages et de rotations
Cette instruction décale l’opérande de k positions vers la droite en passant par l’indicateur de
retenue CF.
Exemples:
39
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de Branchement
Les instructions de branchement (ou saut) permettent de modifier l’ordre d’exécution des
instructions du programme en fonction de certaines conditions.
40
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de Branchement
Instructions de Sauts inconditionnels JMP label
L’instruction exécuté au cycle suivant est l’instruction dont l’adresse est située à label.
--- Un label (ou étiquette) est une représentation symbolique d’une instruction en mémoire ---
Exemple:
41
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de Branchement
Instructions de Sauts conditionnels Jcondition label
43
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de Branchement
Instructions de Sauts conditionnels Jcondition label
Rq :
Il existe un autre type de saut conditionnel, les sauts arithmétiques. Ils
suivent en général l’instruction de comparaison :
Exemple:
CMP operande1,operande2
44