OUTSD
Usage: OUTSD port,src Modifies flags: None
Transfers a byte, word or doubleword from 'src' to the hardware 'port' specified in DX. For instructions with no operands the 'src' is located at DS:SI and SI is incremented or decremented by the size of the operand or the size set by the instruction format.
Output String to I/O Port
OUTSB ; 6E [186]
OUTSW ; o16 6F [186]
OUTSD ; o32 6F [386]
OUTSB loads a byte from ESI and writes it to the I/O port specified in DX. It then increments or decrements (depending on the direction flag: increments if the flag is clear, decrements if it is set) ESI.
OUTSW and OUTSD work in the same way, but they output a word or a doubleword instead of a byte, and increment or decrement the addressing registers by 2 or 4 instead of 1.
When the Direction Flag is set SI is decremented, when clear, SI is incremented. If the port number is in the range of 0-255 it can be specified as an immediate. If greater than 255 then the port number must be specified in DX. Since the PC only decodes 10 bits of the port address, values over 1023 can only be decoded by third party vendor equipment and also map to the port range 0-1023.
The REP prefix may be used to repeat the instruction ECX times.
EXAMPLE:
mov dx 100
outsd