![Intel ITANIUM ARCHITECTURE Manual Download Page 315](http://html.mh-extra.com/html/intel/itanium-architecture/itanium-architecture_manual_2073403315.webp)
4:308
Volume 4: Base IA-32 Instruction Reference
OUTS/OUTSB/OUTSW/OUTSD—Output String to Port
Description
Copies data from the second operand (source operand) to the I/O port specified with
the first operand (destination operand). The source operand is a memory location at the
address DS:ESI. (When the operand-size attribute is 16, the SI register is used as the
source-index register.) The DS register may be overridden with a segment override
prefix.
The destination operand must be the DX register, allowing I/O port addresses from 0 to
65,535 to be accessed. When accessing an 8-bit I/O port, the opcode determines the
port size; when accessing a 16- and 32-bit I/O port, the operand-size attribute
determines the port size.
The OUTSB, OUTSW and OUTSD mnemonics are synonyms of the byte, word, and
doubleword versions of the OUTS instructions. (For the OUTS instruction, “DS:ESI”
must be explicitly specified in the instruction.)
After the byte, word, or doubleword is transfer from the memory location to the I/O
port, the ESI register is incremented or decremented automatically according to the
setting of the DF flag in the EFLAGS register. (If the DF flag is 0, the ESI register is
incremented; if the DF flag is 1, the EDI register is decremented.) The ESI register is
incremented or decremented by 1 for byte operations, by 2 for word operations, or by 4
for doubleword operations.
The OUTS, OUTSB, OUTSW, and OUTSD instructions can be preceded by the REP prefix
for block input of ECX bytes, words, or doublewords. See
/REPNZ—Repeat String Operation Prefix” on page 4:337
for a description of the REP
prefix.
After an OUTS, OUTSB, OUTSW, or OUTSD instruction is executed, the processor waits
for the acknowledgment of the OUT transaction before beginning to execute the next
instruction. Note that the next instruction may be prefetched, even if the OUT
transaction has not completed.
This instruction is only useful for accessing I/O ports located in the processor’s I/O
address space.
I/O transactions are performed after all prior data memory operations. No
subsequent data memory operations can pass an I/O transaction.
Opcode
Instruction
Description
6E
OUTS DX, DS:(E)SI
Output byte at address DS:(E)SI to I/O port in DX
6F
OUTS DX, DS:SI
Output word at address DS:SI to I/O port in DX
6F
OUTS DX, DS:ESI
Output doubleword at address DS:ESI to I/O port in DX
6E
OUTSB
Output byte at address DS:(E)SI to I/O port in DX
6F
OUTSW
Output word at address DS:SI to I/O port in DX
6F
OUTSD
Output doubleword at address DS:ESI to I/O port in DX
Summary of Contents for ITANIUM ARCHITECTURE
Page 1: ......
Page 7: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 199: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 352: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 589: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 590: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 591: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 603: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...
Page 604: ......