Schon klar, aber man will die Pullups an den Ports doch nicht verändern. Also muss PORTX so geschrieben werden (zumindest für die nichtbetroffenen Bits) wie es war. Dazu liest man es einfach aus. PINX hingegen liest die Eingänge.

Beispiel: PORTx=1, also ein IN mit Pullup. Dieser Port soll so bleiben, also nicht zu den Ports gehören, an denen ICP1 angezeigt werden soll.

Nun lesen wir PINx, es sei 0.
Schreiben wir nun 0 nach PORTx, wird der Pullup deaktiviert!!!

Liest man stattdessen PORTx, liest man 1 und beim Schreiben ändert man der Wert des PORTx nicht (zumindest dieses Bits), was man hier haben will.