Premetto che è da due anni che non uso questi comandi e tratto argomenti del genere...

I comandi IN e OUT servono per inviare\ricevere dati da una periferica.

Per scegliere la periferica bisogna naturalmente sapere dov'è mappata.
Facendo un esempietto facile ti si chiariranno le idee.

scrivere
codice:
MOV AL,05     ; carico in AL il dato che voglio trasmettere
MOV DX,0378   ; "dico al pc" che voglio INVIARE alla porta parallela (LPT1)
OUT DX,AL     ; invio i dati alla porta parallela
leggere
codice:
MOV DX,0379   ; "dico al pc" che voglio RICEVERE dalla porta parallela (LPT1)
IN  AL,DX     ; metto in AL i dati ricevuti
Questo per quanto rigurda l'LPT1, se vuoi cose più complesse devi avere un datasheet senò non puoi concludere niente.