Не могу понять толи ошибка в вычислении адреса таблицы ( выделенно) , толи версия 4.14 глючит , но данные в иммуляторе выдаются не верно.

InitregDS:
clr count ; очищаем счетчик количества данных
mov YL,count ; вычисляем адрес данных в таблице
ldi ZL,low(tablini*2)
ldi ZH,high(tablini*2)
call Addaddr ; К подпрограмме сложения
MET1:
lpm temp,Z+ ; извлекаем данные
push temp ; сохраняем данные на случай NACK
MET3:
sts TWDR,temp ; пересылаем данные в DS1337
сall dataWR ; вызываем подпрограмму отсылки
lds temp, TWSR ; проверям ACK
andi temp,$F8
cpi temp,NORMDATW
breq MET2 ; если есть ACK на МЕТ2
brne RET1 ; если NACK то повтор отсылки тех же данных
MET2:
inc count ; добавляем счётчик данных
cpi count,$12 ; проверяем на последний байт данных
brne MET1 ; если не достигнут конец таблицы - вычисление следующего адреса
breq MET4 ; если достигнут формирование STOP
RET1: pop temp ; если NACK извлекаем последниие
rjmp MET3 ; данные табл. и отсылаем ещё раз
MET4: call STOP
STOP: rjmp STOP
…………………………………
;*************************************************
;* *
;* Подпрограмма вычисления адреса данных INIT *
;* *
;*************************************************
Addaddr:
push YH ; Coхраняем YH
lsl YL ; Умножаем YL на 2
ldi YH,0 ; В YH - 0
add ZL,YL ; Складываем address
adc ZH,YH
pop YH
ret ; ВозвратТаблица
.eseg
tablini: .db 00,00,00,$12,01,01,$08,00
.db 00,00,00,00,00,00,00,00
.db 00,00 ; Two control bytes