Section courante

A propos

Section administrative du site

Assembleur 80x86

OUT

INTEL 8088+ Output

Syntaxe

OUT adresse,accumulateur

Paramètres

Nom Description
adresse Ce paramètre permet d'indiquer l'adresse du port d'entrée/sortie. Il peut s'agir d'une valeur entre 0 et FFFFh. Voir Référence des ports d'entrée/sortie 80x86 pour plus de détails.
accumulateur Ce paramètre permet d'indiquer la valeur envoyer dans le port d'entrée/sortie. Il peut s'agir d'un des 3 registres AL, AX ou EAX. Même avec les microprocesseurs 64 bits, il n'est pas possible d'envoyer une valeur plus grande que 32 bits.

Description

Cette instruction permet d'envoyer un octet, un mot ou un double mot sur le port d'entrée/sortie.

Algorithme

SI ((PE = 1) ET ((CPL > IOPL) ET (VM = 1))) ALORS * Mode protégé avec CPL > IOPL ou mode virtual 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
      Port(adresse) ← accumulateur
   FIN SI
SINON
   Port(adresse) ← accumulateur
FIN SI

Mnémonique

Instruction Opcode Description
OUT imm8, AL E6h ib Met un octet contenu dans le registre AL dans le port spécifié par la valeur immédiate de 8 bits.
OUT imm8, AX E7h ib Met un mot contenu dans le registre AX dans le port spécifié par la valeur immédiate de 8 bits.
OUT imm8, EAX E7h ib Met un double mot contenu dans le registre EAX dans le port spécifié par la valeur immédiate de 8 bits.
OUT DX, AL EEh Met un octet contenu dans le registre AL dans le port spécifié par le registre DX.
OUT DX, AX EFh Met un mot contenu dans le registre AX dans le port spécifié par le registre DX.
OUT DX, EAX EFh Met un double mot contenu dans le registre EAX dans le port spécifié par le registre DX.

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#GP(Protection général)   X   Un ou plusieurs bits de permission d'entrée/sortie sont fixer par le TSS pour un accès au 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.
#PF(Faute de page)   X X Une faute de page résultat de l'exécution de l'instruction

Exemple

Cette exemple permet d'effectuer une commande de fin d'interruption (Port 0020h):

  1. MOV AL,20h
  2. OUT 20h,AL

Voir également

Référence des ports d'entrée/sortie 80x86
Instruction assembleur 80x86 - Instruction IN
Instruction assembleur 80x86 - Instruction INS
Instruction assembleur 80x86 - Instruction OUTS

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 824
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 181.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 24 à 26.

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