Section courante

A propos

Section administrative du site

Assembleur 80x86

MOVS

INTEL 8088+ MOVe String

Syntaxe

MOVS opérandecible,opérandesource

Paramètres

Nom Description
opérandecible Ce paramètre permet d'indiquer l'opérande recevant la valeur.
opérandesource Ce paramètre permet d'indiquer l'opérande contenant la valeur à copier.

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

Instruction Opcode Description
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

Message Mode réel Virtuel 8086 Mode protégé Description
#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.

Dernière mise à jour : Vendredi, le 5 septembre 2014