Section courante

A propos

Section administrative du site

Assembleur 80x86

INS

INTEL 80186+ INput String

Syntaxe

INS opérande_cible,DX

Description

Cette instruction permet de demander un octet, un mot ou un double 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 en fonction de la taille de l'opérande cible et de l'état du drapeau de direction. L'adresse du port est contenu obligatoirement dans le registre DX.

Algorithme

MODULE INS(opérande_cible,adresse)
   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 (taille de l'opérande_cible = octet) ALORS
      SI DF = 0 ALORS
         (E)DI ← (E)DI + 1
      SINON
         (E)DI ← (E)DI - 1
      FIN SI
   SINON SI (taille de l'opérande_cible = mot) ALORS
      SI DF = 0 ALORS
         (E)DI ← (E)DI + 2
      SINON
         (E)DI ← (E)DI - 2
      FIN SI
   SINON
      SI DF = 0 ALORS
         (E)DI ← (E)DI + 4
      SINON
         (E)DI ← (E)DI - 4
      FIN SI
   FIN SI

Mnémonique

Instruction Opcode Description
INS mem8, DX 6Ch Lecture d'un octet 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.
INS mem16, DX 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.
INS mem32, DX 6Dh Lecture d'un double 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.

Dernière mise à jour : Lundi, le 1 septembre 2014