IN              Input from Port                      Flags: Not altered

IN accumulator,port IOpm

Logic accumulator ← [port]

IN reads a byte, word, or a doubleword from a specified port and
stores it in AL, AX, or EAX. 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).

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


Opcode Format
E4 ib IN AL,imm8
E5 ib IN AX,imm8
E5 ib IN EAX,imm8
EC IN AL,DX
ED IN AX,DX
ED IN EAX,DX


Length and timing
Operands Bytes 8088 186 286 386 486 Pentium
al, imm8 2 14 10 5 12 14 7 NP
ax, imm8 2 14 10 5 12 14 7 NP
eax, imm8 2 - - - 12 14 7 NP
al, dx 1 12 8 5 13 14 7 NP
ax, dx 1 12 8 5 13 14 7 NP
eax, dx 1 - - - 13 14 7 NP

Protected mode
acc, imm 2 6/26/26 9/29/27 4/21/19 NP
acc, dx 1 7/27/27 8/28/27 4/21/19 NP

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