Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1610

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

OUTS/OUTSB/OUTSW/OUTSD—Output String to Port
Opcode
6E
6F
6F
6E
6F
6F
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
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.
4:308
Instruction
Description
OUTS DX, DS:(E)SI
Output byte at address DS:(E)SI to I/O port in DX
OUTS DX, DS:SI
Output word at address DS:SI to I/O port in DX
OUTS DX, DS:ESI
Output doubleword at address DS:ESI to I/O port in DX
OUTSB
Output byte at address DS:(E)SI to I/O port in DX
OUTSW
Output word at address DS:SI to I/O port in DX
OUTSD
Output doubleword at address DS:ESI to I/O port in DX
"REP/REPE/REPZ/REPNE
for a description of the REP
Volume 4: Base IA-32 Instruction Reference

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents