das ist ja alt...
aber das neue ist kaum anders:

Byte an Slave senden:
out SPDR, temp
wait_spi:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi
; SPIF is set
; Lesen des SPSR (wegen rücksetzen des SPIF)
in temp2, SPSR
; Lesen des SPDR (wegen rücksetzen des SPIF)
in temp2, SPDR ; release SPIF by reading Register

Das ist der SPI-Transfer-Prozess. Hast du doch bei dir auch drin... bis auf das SPIF-Rücksetzen