OUT             Output to Port                       Flags: Not altered

OUT port,accumulator IOpm

Logic [port] ← accumulator

OUT transfers a byte, a word, or a doubleword from the accumulator
(AL, AX, or EAX) to a specified port. The port number is specified
as an immediate byte value (for ports 0 thru 255) or by the DX
register (allowing access to all ports).
If the instruction contains an 8-bit port ID, that value is zero-
extended to 16 bits.


Protected mode
An exception occurs if the current task has insufficient privilege
for the I/O. OUT is not IOPL-sensitive in V86 mode.


Note
I/O ports F8h through FFh are reserved by Intel.


Opcode Format
E6 ib OUT imm8,AL
E7 ib OUT imm8,AX
E7 ib OUT imm8,EAX
EE OUT DX,AL
EF OUT DX,AX
EF OUT DX,EAX


Length and timing
Operands Bytes 8088 186 286 386 486 Pentium
imm8, al 2 14 9 3 10 16 12 NP
imm8, ax 2 14 9 3 10 16 12 NP
imm8, eax 2 - - - 10 16 12 NP
dx, al 1 12 7 3 11 16 12 NP
dx, ax 1 12 7 3 11 16 12 NP
dx, eax 1 - - - 11 16 12 NP

Protected Mode

Operands Bytes 386 486 Pentium
imm8, acc 2 4/24/24 11/31/29 9/26/24 NP
dx, acc 1 5/25/25 10/30/29 9/26/24 NP

Cycles for: CPL <= IOPL / CPL > IOPL / V86