Académique Documents
Professionnel Documents
Culture Documents
dU 8086
Aventage segmentation de mémoire
• La séparation des segments de données et de code
permet d'exécuter un même programme sur divers
ensembles de données en rechargeant le registre
DS pour pointer vers les nouvelles données, offrant
ainsi une grande flexibilité.
• Les programmes qui utilisent uniquement des
décallages peuvent être chargés et exécutés
n'importe où en mémoire, car les décallages restent
toujours comprises entre 0000 et FFFFH,
indépendamment de la base du segment de code.
Aventage segmentation de mémoire
Avantage des programmes relocalisables : Dans un
environnement multitâche, le processeur 8086 peut
effectuer diverses tâches simultanément. Les
programmes inactifs peuvent être temporairement
sauvegardés sur disque et remplacés par de
nouveaux programmes, indépendamment de leur
emplacement physique. Pour qu'un programme soit
relocalisable, il ne doit faire référence à aucune
adresse physique et ne peut modifier les registres de
segment
MODES D'ADRESSAGE
les instructions informatiques se composent
d'un Op-code et d'opérandes, qui indiquent ce
que l'instruction doit faire et où elle doit le faire.
Les opérandes peuvent cibler des registres du,
des emplacements mémoire ou des ports
d'E/S. Les différentes manières dont le
microprocesseur détermine ces adresses
d'opérandes sont appelées les modes
d'adressage.
Mode d'adressage immédiat
Le mode d'adressage immédiat est utilisé pour charger un registre
ou un emplacement mémoire avec des données initiales, que les
instructions suivantes vont ensuite manipuler. La seule restriction
est que les registres de segment ne peuvent pas être spécifiés.
L'opérande immédiat ne peut être que l'opérande source. Par
exemple:
AX 25 00
MOV AX, 2500H
Ici les données immédiates sont 2500H.
le contenu du registre AX est 2500H
Mode d'adressage par registre
Certaines instructions se contentent d'opérer sur des
données ou de les déplacer de manière bidirectionnelle
entre les registres du CPU. MOV DX, CX place une copie
du registre CX dans le registre DX. l'opérande ne nécessite
aucune référence mémoire.
MOV AX, 8010H
MOV DS, AX DS 80 10
Mode d'adressage direct
Dans le mode d'adressage direct, l'adresse mémoire est fournie
directement en tant que partie de l'instruction.
MOV AH, MEMBDS Stocker le contenu de l'emplacement mémoire
MEMBDS dans le registre AH.
L'adresse mémoire 16 bits est toujours écrite
entre crochets. Tous les modes d'adressage
direct pointent dans le segment de données DS.
Pour pointer sur un autre segment de
mémoire il faut le spécifié comme dans
l’instruction suivante: MOV AX, ES: [4321H].
Indirect Memory Access Addressing Modes
Le mode d'adressage direct est utile pour les
accès mémoire peu fréquents. Cependant,
lorsqu'une location mémoire doit être lue ou
écrite plusieurs fois au sein d'un programme, la
récupération répétée de l'adresse logique sur
deux octets rend ce mode inefficace. Les modes
d'adressage indirect résolvent ce problème en
stockant l'adresse mémoire dans un registre
pointeur ou d'index (BX, BP, SI, ou DI).
Indirect Memory Access Addressing Modes
MOV DX, [SI] segment mémoire DS MOV DX, [DI] segment mémoire DS
Exemple : Mode d’adressage registre indirect
Afficher l'emplacement des données en mémoire, après l'exécution de
chacune de ces instructions, si le contenu des registres est tel
qu'indiqué. instruction adresse contenu
DS = 1112H, BX = 3400H, AX=EE78H c 14520H 78H
Exemple :
ou un mot. L'instruction DEC est une
DEC BX instruction à un octet. l'instruction DEC
n'affecte pas le flag de retenue
DIV Division non signée
Exemple
MOV AX, 00C8H
MOV CL, 06H
DIV CL
CF = OF = 0 lorsque la partie
haute du résultat est nulle.
Operands IMUL Multiplication signée
REG
memory
Effectue une multiplication signée de l’opérandee source
de l’accumulateur
Exemple
MOV AL, 03H
MOV CL, 05H
IMUL CL; AX = 000FH
CF = OF = 0 lorsque le résultat
correspond à l'opérande d'IMUL
NEG Négation
Operands
REG
memory
Calcule le complément à 2 de l’opérande
Exemple
F5H est équivalent à 11110101B, cela signifie que le bit de signe est
1. Après le CBW, le bit de signe (1 dans ce cas) sera étendu au
registre AX.
CWD Convertir mot en double mot
pas d'opérandes
CWD convertit la valeur signée 16 bits dans
le registre AX en une valeur signée 32 bits
équivalente dans la paire de registres
Exemple
DX:AX en dupliquant le bit de signe vers la
MOV DX, 0
MOV AX, 0 gauche.
MOV AX, 14H; DX:AX = 0000H:0FFECH
CWD; DX:AX = 0FFFFH:0FFECH
Instruction logique
Le 8086 fournit des instructions logiques. tel
que AND, OR, XOR, TEST, NOT et CMP. Ces
instructions peuvent manipuler des bits,
convertir des valeurs, effectuer des
opérations logiques, compresser et
décompresser des opérations de données
Instruction logique
Format d'instructions Fonction réalisée Flags concernés
inchangé.
Operandes OR logique
REG, memory Cette instruction effectue une opération
memory, REG OR logique au niveau du bit entre les
REG, REG opérandes source et destination. Le
memory, immediate
résultat est stocké dans l'opérande de
REG, immediat
destination. Après l'opération, les bits
des Flags FZ, FS et FP sont modifiés
tandis que les bits CF et OF sont à 0 et
AF est indéfini.
TEST
Operandes
REG, memory Cette instruction effectue un AND
memory, REG logique entre tous les bits des
REG, REG opérandes source et destination.
memory, immediate Cette instruction effectue l'opération
REG, immediate logique ET mais aucun des
Exemple
MOV AL, 25H
opérandes n'est modifié, seuls les
TEST AL, 05H; ZF = 0 Flags ZF, SF, PF sont modifiés. Les
TEST AL, 20H; ZF = 0 Flags CF et OF sont effacés.
Operandes
REG, memory XOR Logique
memory, REG
REG, REG Cette instruction effectue une
memory, immediate
REG, immediat opération OU exclusif au
Exemple
AL =8CH, CH = 67H, niveau du bit entre les
XOR AL, CH opérandes source et destination.
Après éxecution
AL = EBH, CF = 0, OF =
Après l'opération, le résultat est
0, ZF = 0. stocké dans la destination.