Instrucțiunile IN și OUT în x86_64: Comunicarea cu Porturile Hardware în Assembly (x86_64)

Sintaxă
in al, dx / in eax, dx
out dx, al / out dx, eax

Instrucțiunile IN și OUT realizează transferul de date prin spațiul I/O separat al procesoarelor x86 (porturile 0x0000 – 0xFFFF), utilizat pentru comunicarea directă cu placa de bază, porturile seriale COM, controlerul de tastatură și cipurile legacy.

; Trimiterea unui caracter către portul serial COM1 (0x3F8):
global trimite_port_serial
trimite_port_serial:
    mov dx, 0x3F8               ; Registrul DX conține numărul portului I/O
    mov al, 'A'                 ; Caracterul de trimis
    out dx, al                  ; Emite caracterul pe magistrala I/O fizică
    ret

; Citirea stării tastaturii din portul 0x64:
citeste_stare_tastatura:
    mov dx, 0x64
    in al, dx                   ; Citește octetul de stare în AL
    ret

Nivel de permisiuni: Execuția instrucțiunilor I/O necesită permisiuni acordate de nucleul sistemului de operare (prin masca IOPL din RFLAGS sau harta de permisiuni I/O din TSS).

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Instrucțiunile IN și OUT în x86_64: Comunicarea cu Porturile Hardware

Ai o nelămurire despre utilizarea comenzii Instrucțiunile IN și OUT în x86_64: Comunicarea cu Porturile Hardware sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.