A byte, word or dword is read from “port” and placed in AL, AX or EAX respectively. If the port number is in the range of 0-255 it can be specified as an immediate, otherwise the port number must be specified in DX. Valid port ranges on the PC are 0-1024, though values through 65535 may be specified and recognized by third party vendors and PS/2's.
Usage:
IN accum,port ;
Modifies flags:
none
Clocks | Size | |||||
---|---|---|---|---|---|---|
Operands | 808x | 286 | 386 | 486 | Bytes | |
accum,immed8 | 10/14 | 5 | 12 | 14 | 2 | |
accum,immed8 (PM) | - | - | 6/26 | 8/28/27 | 2 | |
accum,DX | 8/12 | 5 | 13 | 14 | 1 | |
accum,DX (PM) | - | - | 7/27 | 8/28/27 | 1 |
first number is the timing if: | CPL ¾ IOPL |
second number is the timing if: | CPL > IOPL or in VM 86 mode (386) |
CPL ‗ IOPL (486) | |
third number is the timing when: | virtual mode on 486 processor |