Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z
Vol. 2B 4-15
INSTRUCTION SET REFERENCE, N-Z
OUT—Output to Port
Description
Copies the value from the second operand (source operand) to the I/O port specified
with the destination operand (first operand). The source operand can be register AL,
AX, or EAX, depending on the size of the port being accessed (8, 16, or 32 bits,
respectively); the destination operand can be a byte-immediate or the DX register.
Using a byte immediate allows I/O port addresses 0 to 255 to be accessed; using the
DX register as a source operand allows I/O ports from 0 to 65,535 to be accessed.
The size of the I/O port being accessed is determined by the opcode for an 8-bit I/O
port or by the operand-size attribute of the instruction for a 16- or 32-bit I/O port.
At the machine code level, I/O instructions are shorter when accessing 8-bit I/O
ports. Here, the upper eight bits of the port address will be 0.
This instruction is only useful for accessing I/O ports located in the processor’s I/O
address space. See Chapter 13, “Input/Output,” in the Intel
®
64 and IA-32 Architec-
tures Software Developer’s Manual, Volume 1, for more information on accessing I/O
ports in the I/O address space.
This instruction’s operation is the same in non-64-bit modes and 64-bit mode.
IA-32 Architecture Compatibility
After executing an OUT instruction, the Pentium
®
processor insures that the EWBE#
pin has been sampled active before it begins to execute the next instruction. (Note
that the instruction can be prefetched if EWBE# is not active, but it will not be
Opcode* Instruction
64-Bit
Mode
Compat/
Leg Mode Description
E6 ib OUT imm8, AL Valid Valid Output byte in AL to I/O port
address imm8.
E7 ib OUT imm8, AX Valid Valid Output word in AX to I/O port
address imm8.
E7 ib OUT imm8, EAX Valid Valid Output doubleword in EAX to
I/O port address imm8.
EE OUT DX, AL Valid Valid Output byte in AL to I/O port
address in DX.
EF OUT DX, AX Valid Valid Output word in AX to I/O port
address in DX.
EF OUT DX, EAX Valid Valid Output doubleword in EAX to
I/O port address in DX.
NOTES:
* See IA-32 Architecture Compatibility section below.