L3 Télécommunication, 2022-2023 TP Calculateurs et Interfaçage ISE, FT, UMBB
TP2 : Instructions Arithmétiques en 8086
Noms Zeguir meriem Gr :
Prénoms bouyahiaoui lilia A2
I/ Préparation théorique :
A/ Rappel :
Le 8086 est un microprocesseur 16 bits, alors il n’est pas adéquat d’avoir des adresses mémoires de 20 bits [Ou 5 digits en
représentation hexadécimale] (On parle de ceci, car la technologie a produit des bus d’adresses sur 20 bits). La solution adoptée est :
Diviser la mémoire en pages (appelés segments).
Représenter alors une adresse relative (offset) sur 16 bits [ou 4 digits en représentation hexadécimale] parcourant un segment.
Donc au lieu de représenter une adresse par 20350, on utilise plutôt 2000 : 350 ou : 2000 est le segment et 350 est l’offset.
Analogie à la numération utilisée dans les hôtels. Lors de la réservation de la chambre 213 ..
On comprend directement qu’il s’agit de la chambre 13 de l’étage 2.
(Alors l’étage 2 représente le segment et 13 l’offset . Alors on peut écrire 2: 13)
B / Donner les adresses absolues (physiques) des adresses suivantes :
Adresse logique Adresse absolue
3500 : A400 3F400
1036 : FFF0 20350
2000 : 0420 20420
3C47 : 2590 3EA00
Vos remarque/commentaire sur les résultats du
tableau : pour
le calcule de l’adresse absolue on utilise le l’logiciel EMU on tape l’adresse logique dans la (case mémoire)et
puis on apue sur OK on obtient l’adresse absolue
2éme méthode :pour calculer l’adresse absolue a partir de l’adresse logique on rajoute un 0 à gauche du segment de 16bits
(multiplication par 10[3500*10=35000]puis on fait l’addition [3500+A400] pour obtenir un adresse physique
On remarque que deux adresses logiques différentes ont la même adresse absolue
C / Indiquer les instructions correctes et corriger les autres :
Instruction Correction
MOV AX, 5hex Incorrecte MOV AX ,5h
MOV 9, AH correcte
MOV BH, BX Incorrecte MOV BX ,BX
MOV AX, [BX] correcte
MOV AL, [BX+2] correcte
MOV AX, Q1 Incorrecte on réservé une variable
Q1 dans la mémoire MOV AX ,Q1
dw ?
MOV AX, [1] correcte
MOV AX, BL Incorrecte on peut transférer un
registre de 8bits à16bits
MOV AX,BX
1/2