| Assembleur 80x86 |
MOVS |
| INTEL 8088+ |
MOVe String |
Syntaxe
|
MOVS opérandecible,opérandesource
|
Description
Cette instruction permet de copier un élément de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
Algorithme
opérandecible ← opérandesource
SI opérande est un octet ALORS
SI DF = 0 ALORS
(E)SI ← (E)SI + 1
(E)DI ← (E)DI + 1
SINON
(E)SI ← (E)SI - 1
(E)DI ← (E)DI - 1
FIN SI
SINON SI opérande est un mot ALORS
SI DF = 0 ALORS
(E)SI ← (E)SI + 2
(E)DI ← (E)DI + 2
SINON
(E)SI ← (E)SI - 2
(E)DI ← (E)DI - 2
FIN SI
SINON SI opérande est un double mot ALORS
SI DF = 0 ALORS
(E)SI ← (E)SI + 4
(E)DI ← (E)DI + 4
SINON
(E)SI ← (E)SI - 4
(E)DI ← (E)DI - 4
FIN SI
SINON
SI DF = 0 ALORS
(E)SI ← (E)SI + 8
(E)DI ← (E)DI + 8
SINON
(E)SI ← (E)SI - 8
(E)DI ← (E)DI - 8
FIN SI
FIN SI
|
Mnémonique
| MOVS mem8, mem8 |
A4h |
Copie l'octet de DS:(R)SI à ES:(R)DI, et alors incrémente ou décrément le registre (R)SI et (R)DI. |
| MOVS mem16, mem16 |
A5h |
Copie le mot de DS:(R)SI à ES:(R)DI, et alors incrémente ou décrément le registre (R)SI et (R)DI. |
| MOVS mem32, mem32 |
A5h |
Copie le double mot de DS:(R)SI à ES:(R)DI, et alors incrémente ou décrément le registre (R)SI et (R)DI. |
| MOVS mem64, mem64 |
A5h |
Copie le double mot de DS:(R)SI à ES:(R)DI, et alors incrémente ou décrément le registre (R)SI et (R)DI. |
Exceptions
| #SS(Pile non-canonique) |
X |
X |
X |
Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique |
| #GP(Protection général) |
X |
X |
X |
Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique |
| |
|
X |
L'opérande de destination n'est pas dans un segment non écrivable |
| |
|
X |
Un segment de données nulle est utilisé comme référence mémoire |
| #PF(Faute de page) |
|
X |
X |
Une faute de page résultat de l'exécution de l'instruction |
| #AC(Vérifie l'alignement) |
|
X |
X |
Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé |
Voir également
Instruction assembleur 80x86 - Instruction MOV
Instruction assembleur 80x86 - Instruction LODS
Instruction assembleur 80x86 - Instruction STOS
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 821
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 411
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 168.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 792 à 796.
|