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 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 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
Cet exemple permet d'effectuer une commande de fin d'interruption (Port 0020h):
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.