insd

Input string doublewords from I/O port

Reads a doubleword from port dx into [es:rdi], then advances rdi by 4, backward when DF is set.

386 and later

Intel's reference: INS/INSB/INSW/INSD

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

Forms

  • insd

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

After the transfer, rdi 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 edi. 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

        insd

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