outsd

Output string doublewords to I/O port

Loads a doubleword from [rsi] and writes it to port dx, then advances rsi by 4, backward when DF is set.

386 and later

Intel's reference: OUTS/OUTSB/OUTSW/OUTSD

CFPFAFZFSFDFOF –––––––
  • Changes no flag
  • Reads DF

Forms

  • outsd

The d suffix selects 4 bytes per element; no quadword form exists. Flags are unchanged.

After the transfer, rsi increases by 4 when DF = 0 or decreases by 4 when DF = 1. In 64-bit mode addresses use this 64-bit register by default; a32 selects esi. The rep prefix repeats using rcx, or ecx with a32, as the counter. A zero initial repeat count performs no transfer. Access to I/O ports is subject to operating-system privilege checks.

global _start

section .text
_start:
        mov rax, 12
        mov rbx, 5
        mov rcx, 3
        mov rsi, 9

        outsd

        mov rax, 60         ; syscall 60: exit
        xor rdi, rdi
        syscall