Der holt sich Daten von Adresse p (pointer), verschiebt sie um 8 bit nach unten, maskiert die untersten 8 bit und schreibt das Ergebnis nach SBUF0. Das & ist ein bitweises UND. Das lässt nur die gesetzten Bits durch. Alle anderen werden auf Null gesetzt. Für den Fall, dass SBUF0 ein 8-bit-Register ist, wäre die Verundung mit 0xFF nicht notwendig, da das dann automatisch geschieht...