Oder stehe ich aufem Schlauch ?
Ein bisschen, aber das kriegen wir hin

Die Idee mit dem "Maskieren" beruht auf folgendem Ansatz:

Wenn X ein Bit ist (also die Werte 0 oder 1 annehmen kann), dann gilt folgendes:

X AND 0 = 0 (egal welchen Wert X hat: Eine "und"-Verknüpfung mit 0 ergibt immer 0)
X AND 1 = X (0 AND 1 = 0, 1 AND 1 = 1)

Wenn Du also folgenden Befehl ausführst:

Byte = Byte AND &B00001111

dann werden die linken 4 Bits auf 0 gesetzt, während die rechten 4 Bits ihren Wert unverändert beibehalten. Logisch, oder?

Und darauf bezog sich auch die Antwort von da_reefer: Wenn der BCD-Wert an PIND.0-3 anliegt, Du aber den kompletten Port abfragst (Byte = PIND), könnte es theoretisch sein, dass die Bits PIND.4-7 das Byte verfälschen. Deshalb solltest Du sie sicherheitshalber mit dem AND &B00001111-Befehl löschen. Und der ist in der Tat nur ein mal erforderlich, und zwar nachdem Du den Wert von PIND in ein Byte übernommen hast.