Vous êtes sur la page 1sur 31

Ecole Marocaine des Sciences

de l’Ingénieur

Le Microprocesseur
Intel 8086

2020/2021
Introduction générale

Pourquoi étudier et apprendre à programmer un Microprocesseur

?
Qu’est-ce qu’un Microprocesseur

Le Microprocesseur Intel 8086

2
Le Microprocesseur Intel 8086

L’architecture externe du 8086

?
Qui est-ce qu’un Bus, une interruption et une mémoire

La description des broches de connexion

Chronogrammes de lecture/écriture en mémoire

3
Le Microprocesseur Intel 8086

L’architecture interne du 8086

?
Organisation de l’espace mémoire adressable

Les registres

Le codage des instructions

4
Le Microprocesseur Intel 8086
Les modes d’adressage

8086
possède 7 modes d’adressage

Adressage registre à registre


Adressage Immédiat
Adressage Direct
Adressage Basé
Adressage Indexé
Adressage Basé Indexé
M
od Adressage Basé Indexé
eI
nd avec déplacement
ire
ct
5
Le Microprocesseur Intel 8086
Les principales instructions du 8086

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

Rq : 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).

7
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions de transfert
Exemples:
MOV AL, 21h : Charger 21h dans le registre AL

MOV AX, BX : Charger le contenu de BX dans AX.

MOV AX, [0200h] : Charger le contenu de la case mémoire 0200 dans AX

MOV AH, [BX+SI+100h] : Charger le contenu de BX+SI+100h dans la AH

XCHG OD, OS

 Echange l'opérande Source avec


l'opérande Destination

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

le contenu doit être placé sur la pile)


 Décrémente SP de 2 octets
 Copie Op dans la mémoire pointée par SP
POP Op // POP destination (Restaure « destination»)

 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

INC Op Incrémente l'opérande Op

Rq : Pour incrémenter une case mémoire, il faut préciser la taille

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

DEC Op Décrémente l'opérande Op

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:

mov al, 51 mov ax, 4253


mov bl, 32 mov bx, 1689
mul bl mul bx
→ AX = 51 × 32 → (DX, AX) = 4253 × 1689
= 1632 (660H) = 7183317
(6D9BD5H)
IMUL Op (Integer Multiply ) Identique à MUL excepté qu'une multiplication signée est effectuée
15
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques

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.

Exemple : DIV byte [adresse] ou DIV word [adresse].

Rq : Op ne peut pas être une donnée (immédiat)


16
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques

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)

IDIV Op Identique à DIV mais effectue une division signée

17
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques

Division

CBW (Convert Byte to Word)


 Effectue une extension de AL dans AH. On écrit le contenu de AL dans AX en respectant le signe
- Si AL contient un nombre positif, On complète par des 0 pour obtenir la représentation sur 16 bits.
- Si AL contient un nombre négatif, On complète par des 1 pour obtenir la représentation sur 16 bits.
+5 = 0000 0101 0000 0000 0000 0101
-10 = 1111 1010 1111 1111 1111 1010
CWD (Convert Word to Double Word)
 Effectue une extension de AX dans DX en respectant le signe.
 On écrit AX dans le registre 32 bits obtenu en collant DX et AX
18
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques

Exercice - 1

On désire additionner :

 Un nombre de 32 bits situe à l’adresse 1000H avec un


nombre de 32 bits situé à l’adresse 1004H,
 Le résultat sera stockée à l’adresse 1008H.

19
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Arithmétiques

Exercice - 2

Ecrire les instructions pour calculer l’expression suivante :

(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

ET Logique AND Od, Os

 L’opération effectuée est : Od  Od ET Os

Exemples:
mov al,10010110B
mov bl,11001101B
and al, bl

Donner le contenu résultant du registre AL en binaire puis en hexadécimal

MOV AX,125h
AND AL, AH

22
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques

OU Logique OR Od, Os

 L’opération effectuée est : Od  Od OU Os

Exemples:
mov ah, 01011000B met à 1 le bit de faible
OR AL, 1H
or ah, 00001101B poids de AL

Donner le contenu résultant du registre AH en binaire puis en hexadécimal

MOV AX,105h
OR AH, AL

23
Le Microprocesseur Intel 8086
Les principales instructions du 8086
Les instructions Logiques

OU exclusif XOR Od, Os

 L’opération effectuée est : Od  Od XOR Os

Exemples:
mov al, 25
al = ?
xor al, al

mov ax, 344h


ax = ?
xor ax, 433h

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

Sans utiliser l’instruction XOR, écrire

?
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.

Exemples: masquage des bits 0, 1, 6 et 7 dans un octet :

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

Vous aimerez peut-être aussi