Dernières instrutions
Nous allonspasseren revue dans ehapitrelesinstrutionsdu 8086que nousn'avonspas
enorerenontrées.
23.1 Adressage indexé pour les tableaux
Avel'adressage indexél'instrutionspéie àlafoisunregistred'indexetuneonstante,
appeléedéplaement(displaement enanglais).Leontenuduregistred'indexest ajoutéàla
onstante,lasommeonstituantledéalagedel'adresse del'opérande.
Cettetehniqued'adressagepermetd'aédersuessivementauxélémentsd'unblo,appelé
tabledanseontexte:laonstanteest l'adressedudébutdelatableetleregistred'indexest
utilisépouraédersuessivementauxdiérentsélémentsdelatable.Ceirequiertévidemment
ladisponibilitéd'instrutionsd'inrémentationetdedérémentationduregistred'index.
Combiné ave les adressages préédents, ei donne une grande variété de formation de
l'adresseeetiveAEdansunsegment.Cetteadresseest lerésultatdel'additiondudéplae-
ment,quipeutêtreodésurunmot(entiernaturel)ouunotet(entierrelatif),d'unregistrede
base (BP ouBX)et d'unregistreindex(SI ouDI),haundees troistermes étantfaultatif,
equi donne16possibilitésommelemontreletableausuivant:
Adresseeetive parrapportausegment
DEP DS
[ BP ]
interdit[ BX ]
DS[ SI ]
DS[ DI ]
DS[ BP ]
+DEP SS[ BX ]
+DEP DS[ SI ]
+DEP DS[ DI ]
+DEP DS[ BP ] + [ SI ]
SS[ BP ] + [ DI ]
SS[ BX ] + [ SI ]
DS[ BX ] + [ DI ]
DS[ BP ] + [ SI ]
+DEP SS[ BP ] + [ DI ]
+DEP SS[ BX ] + [ SI ]
+DEP DS[ BX ] + [ DI ]
+DEP DSCasdulangagemahine.-La désignationdel'adresseeetives'eetuegrâe àl'otetmaintes
foisrenontrédanslesinstrutions:
| mod reg r/m |
maispasenoredérit omplètement.Nousavonsvuqueregdésigneleregistre(oulepremier
registre) del'instrution. Les termes modet r/mpermettent despéier l'adresseeetive on-
formémentautableausuivant:
mod=00
r/m AE
000
[ BX ] + [ SI ]
001
[ BX ] + [ DI ]
010
[ BP ] + [ SI ]
011
[ BP ] + [ DI ]
100
[ SI ]
101
[ DI ]
110 DEP(16bits)
111
[ BX ]
mod=01ou10
r/m AE mod
01 10
000
[ BX ] + [ SI ]
+001
[ BX ] + [ DI ]
+ DEP DEP010
[ BP ] + [ SI ]
+011
[ BP ] + [ DI ]
+ 8bits 16bits100
[ SI ]
+101
[ DI ]
+110
[ BP ]
+111
[ BX ]
+23.2 Instrutions d'éhange
Langagesymbolique.-Le8086dispose,enplusdesinstrutionsdetransfert simpledes données
(àsavoirMOV),d'instrutionsquiéhangententreeuxlesontenusdedeuxemplaements.Ces
instrutionssontreprésentéespar:
XCHG but, soure
pourl'anglaiseXCHanGe.Bienentendu,pouretteinstrution,iln'estpastrèsutilededistinguer
entrebutet sourepuisquelesdeuxopérandesjouentunrlesymétrique.
Langagemahine.-L'éhangepeutavoirlieuentreregistresouregistreetasemémoire:
-1
o
)Unéhangeentrel'aumulateurAX etunregistre(16bits)est odésurunotetpar:
| 100 10reg |
-2
o
)Sinon,l'éhangeestodésurdeuxàquatreotetspar:
| 1000 011w | mod reg r/m | | |
23.3 Pas d'opération
Langagesymbolique.-L'instrution :
NOP
(pourl'anglaisNoOPeration)nefaitrien.
Intérêt.- Cette instrution peut être utilisée pour ralentir volontairement unprogramme. Elle
peutégalementêtreutiliséelorsdudéveloppementdeprogrammespourréserverdelaplae.
Langagemahine.-L'instrutionNOPestodéesurunotetpar1001 0000b,soit90h.
23.4 Arrêt du programme
Langagesymbolique.-L'instrution :
HALT
interromptlesopérationsdumiroproesseurjusqu'àequ'uneréinitialisationouuneinterrup-
tionseproduisent.
23.5 Tables de tradution
Introdution.-Une opérationourantesurleshaînesdearatèresonsisteàremplaeruna-
ratèreparunautresuivantunetabledetradution.Lesonepteursdu8086ontimplémenté
uneinstrutionpourfailiter ettetradution.
Langagesymbolique.-L'instrution:
XLAT
(pour l'anglais tranSLATe)remplae le ontenu atuel duregistreAL parl'otet d'un tableau
de256otetsd'indiespéié parAL.L'adressedudébutdelatableest indiquéeparleouple
deregistresDS:BX.
Remarque.-L'instrution XLATestéquivalente àl'instrutionillégalesuivante :
MOV AL,[BX + AL℄
Langagemahine.-L'instrutionXLATestodéesurunotetpar| 1101 0111 |,soitD7h.
23.6 A
AAA
AAD
AAM
AAS
CBW
CWD
ESC
INTO
JCXZ
LAHF
LDS
LEA
LES
LOCK
SAHF
TEST
WAIT
23.7 Historique
L'adressageindexé n'existe pas sur le 8080. Il aété ajouté sur le Z80 en même temps que
deuxregistresd'index,dénommésIXetIY.