Zápis a čtení na EEPROM ATmega32A

Asi jsem nezmínil, že pracuji v assembleru. Datasheet jsem pročetl několikrát a stejně mi není jasné to nastavení EEARL/H.

	.INCLUDE "m32Adef.inc"
	.org 0
	.def EEPROM = r16
	ldi r18,2
	ldi r20,4	
main:
	cpi r30,1
	breq EEPROM_WRITE
	cpi r30,2
	breq EEPROM_WRITE2
	cpi r30,3
	breq EEPROM_READ	
	cpi r30,4
	breq EEPROM_READ2
	rjmp main

EEPROM_WRITE:				
	SBIC EECR, EEWE			
	RJMP EEPROM_WRITE		

	LDI EEPROM,0x00
	OUT EEARH,EEPROM		
	LDI EEPROM,0x17
	OUT EEARL,EEPROM

	OUT EEDR, r18			
	SBI EECR, EEMWE			
	SBI EECR, EEWE			
	rjmp main

EEPROM_WRITE2:
	SBIC EECR, EEWE			
	RJMP EEPROM_WRITE2	

	LDI EEPROM,0x18
	OUT EEARL,EEPROM

	OUT EEDR, r20		
	SBI EECR, EEMWE			
	SBI EECR, EEWE			
	rjmp main				

EEPROM_READ:				
	SBIC EECR, EERE			
	RJMP EEPROM_READ		  

	CLR EEPROM
	OUT EEARH, EEPROM
	LDI EEPROM, 0x17
	OUT EEARL, EEPROM

	SBI EECR,EERE			
	IN r19, EEDR			
	rjmp main

EEPROM_READ2:
	SBIC EECR, EERE			
	RJMP EEPROM_READ2		  

	LDI EEPROM, 0x18
	OUT EEARL, EEPROM

	SBI EECR,EERE			
	IN r21, EEDR		
	rjmp main