всем добрый день! только начинаю познавать прекрасный мир микроконтроллеров и вот решил попробовать попрограммировать. выбрал в качестве МК Atmega328P и написал следующую программу:
.device Atmega328P
.include "m328Pdef.inc"
.CSEG
.ORG 0x20
data: .DB 10,10
.ESEG
.ORG 0x40
data1: .DB 1,2,3
по идее часть с ESEG должна установить в ячейки EEPROM-памяти значения 1, 2 и 3 по адресам 0х40, 0х41 и 0х42, однако когда я проверил EEPROM-память, то результаты меня удивили (отображены на картинке):

при этом все адекватно работает, если адрес в директиве ORG установлен в 0х00:

немного поигравшись со значениями адреса в директиве ORG я понял, что значения 1, 2 и 3 почему-то смещаются влево, а остальные ячейки заполняются нулями. например, если установить адрес 0х01, то будет так:

возникает соответствующий вопрос - кто-нибудь знает, в чем дело? и как это можно исправить?