Assembleur 80x86 | INSW |
---|---|
INTEL 80186+ | INput String Word |
Syntaxe
INSW |
Description
Cette instruction permet de demander un mot du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI de 2 en fonction de l'état du drapeau de direction. L'adresse du port est contenu obligatoirement dans le registre DX.
Algorithme
MODULE INSW SI ((PE = 1) ET ((CPL > IOPL) ET (VM = 1))) ALORS * Mode protégé avec CPL > IOPL ou mode virtuel 8086 SI (n'importe quel permission de bit d'E/S pour un port d'E/S à un accès = 1) ALORS EXCEPTION #GP(0) SINON accumulateur ← Port(adresse) FIN SI SINON accumulateur ← Port(adresse) FIN SI SI DF = 0 ALORS (E)DI ← (E)DI + 2 SINON (E)DI ← (E)DI - 2 FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
INSW | 6Dh | Lecture d'un mot dans le port spécifié par le registre DX, et met le résultat dans l'emplacement mémoire spécifié par ES:(R)DI. Enfin, incrémente et décrémente le registre (R)DI. |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#GP(Protection général) | X | X | X | Un ou plusieurs bits de permission d'entrée/sortie sont fixer par le TSS pour un accès au port. |
X | Une ou plusieurs permission bit d'entrée/sortie sont fixer dans le TSS d'un accès de port. | |||
X | Le CPL est plus grand que le IOPL et une ou plusieurs bits de permission sont fixer par le TSS pour un accès au port. | |||
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
Référence des ports d'entrée/sortie 80x86
Instruction assembleur 80x86 - Instruction OUT
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 813
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 120.
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 573 à 577.