.include "m64adef.inc"
.list ; Включение листинга
.cseg
.org 0
	rjmp	RESET	; Reset Handler
	

RESET:


						; инициализация стека
    ldi     r16, low(RAMEND)
    out     SPL, r16
    ldi     r16, high(RAMEND)
    out     SPH, r16

WDR

	
	LDI 	R16,0		; Загружаем адрес нулевой ячейки
	LDI 	R17,0		; EEPROM 
	LDI 	R21,45		; и хотим записать в нее число 45
	RCALL 	EEWrite 	; вызываем процедуру записи.

WDR
	
	LDI 	R16,1		; Загружаем адрес нулевой ячейки
	LDI 	R17,0		; EEPROM 
	LDI 	R21,88		; и хотим записать в нее число 45
	RCALL 	EEWrite 	; вызываем процедуру записи.

WDR

	LDI 	R16,2		; Загружаем адрес нулевой ячейки
	LDI 	R17,0		; EEPROM 
	LDI 	R21,17		; и хотим записать в нее число 45
	RCALL 	EEWrite 	; вызываем процедуру записи.


Loop:
	WDR
	jmp Loop




EEWrite:

WDR	
	SBIC	EECR,EEWE		; Ждем готовности памяти к записи. Крутимся в цикле
	RJMP	EEWrite 		; до тех пор пока не очистится флаг EEWE
 
WDR
 
	CLI						; Затем запрещаем прерывания.
	OUT 	EEARL,R16 		; Загружаем адрес нужной ячейки
	OUT 	EEARH,R17  		; старший и младший байт адреса
	OUT 	EEDR,R21 		; и сами данные, которые нам нужно загрузить

WDR
 
	SBI 	EECR,EEMWE		; взводим предохранитель
	SBI 	EECR,EEWE		; записываем байт
 
WDR
 
	SEI 					; разрешаем прерывания
	RET 					; возврат из процедуры


