;Wpisz 1 bajt do r16 pod adresem Z.
put_ieep_byte:
sbic EECR,EEWE ; Czekaj az zakończy się poprzednia operacja zapisu
rjmp put_ieep_byte
out EEARH,zh ; ustaw adres (do wpisu) (w Z ) w rejestrze adresu
out EEARL,zl
out EEDR,r16 ; Wpisz dane (r16) do rejestru danych
sbi EECR,EEMWE ; Wpisz logiczne 1(true) dp EEMWE
sbi EECR,EEWE ; Rozpocznij wpisywanie do eeprom z ustawieniem EEWE
ret
źródło
https://www.avrfreaks.net/forum/cant-seem-write-eeprom-assembler