- Es ist in vielen Anwendungsfällen nicht möglich sämtliche Bits eines Ports als Ausgang oder sämtliche als Eingang zu benutzen.
 
     - Oft muß das Byte aufgeteilt werden.
 
     - Beispiel: DDRB = 0b11110000; - Die niederwertigen vier Bit von Port B werden als Ein- die höherwertigen als Ausgänge verwendet.
 
     - Will man für die Eingänge die Pullup-Widerstände aktivieren, so schreibt man PORTB = 0b00001111;
 
     - Sollen nun einzelne Bits des Ausgangs von Port B (Bit 3 bis Bit 7) gesetzt werden, so dürfen dabei die niederwertigen Bits, die die Pullup-Widerstände dort aktiv halten nicht verändert werden.
 
     - Wie kann man das machen?
 
     - Man muß den aktuellen Zustand von Port B lesen und den gelesenen Zustand wieder Port B zuweisen, allerdings unter Verwendung einer Maske, die dann nur das gewünschte Bit verändert.
 
     - Beispiel Bit4 (5. Bit) setzen, ohne die anderen Bits zu verändern: PORTB |= 0b00010000;
 
     - Beispiel Bit7 (8. Bit) setzen, ohne die anderen Bits zu verändern: PORTB =  PORTB | 0b00010000;
 
     - Beispiel Bit5 (6. Bit) löschen, ohne die anderen Bits zu verändern: PORTB =  PORTB & 0b11011111;
 
     - Beispiel Bit4 (5. Bit) löschen, ohne die anderen Bits zu verändern: PORTB &= 0b11101111;
 
  |