Assembleur 80x86 | LODS |
---|---|
INTEL 8088+ | LOaD String |
Syntaxe
LODS chainesource |
Description
Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
Algorithme
MODULE LODS(chainesource) SI (charge un octet) ALORS AL ← chainesource SI DF = 0 ALORS (E)SI ← (E)SI + 1 SINON (E)SI ← (E)SI - 1 FIN SI SINON SI (charge un mot) ALORS AX ← chainesource SI DF = 0 ALORS (E)SI ← (E)SI + 2 SINON (E)SI ← (E)SI - 2 FIN SI SINON SI (charge un double mot) ALORS EAX ← chainesource SI DF = 0 ALORS (E)SI ← (E)SI + 4 SINON (E)SI ← (E)SI - 4 FIN SI SINON RAX ← chainesource SI DF = 0 ALORS (E)SI ← (E)SI + 8 SINON (E)SI ← (E)SI - 8 FIN SI FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
LODS mem8 | ACh | Charge l'octet de DS:(R)SI dans AL et incrémente ou décrément (R)SI. |
LODS mem16 | ADh | Charge le mot de DS:(R)SI dans AX et incrémente ou décrément (R)SI. |
LODS mem32 | ADh | Charge le double mot de DS:(R)SI dans EAX et incrémente ou décrément (R)SI. |
LODS mem64 | ADh | Charge le quadruple mot de DS:(R)SI dans RAX et incrémente ou décrément (R)SI. |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#SS(Pile) | 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 | 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 MOVS
Instruction assembleur 80x86 - Instruction STOS
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 818
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 149.
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 664 à 667.