|
Ассемблерный Program Counter обычно имеет такой же шаг, что и память программ (Flash) - в АВР это слово, или 2 байта - следовательно, КОМАНДЫ адресуются пословно. Константы же, располагаемые в памяти программ, доступны командами LPM побайтно. Каждой метке в сегменте CODE ассемблер присваивает текущее значение Program Counter, измеряемое в словах. Для того, чтобы получить адрес байта, и необходимо ЧИСЛЕННОЕ ЗНАЧЕНИЕ метки в сегменте CODE умножить на 2.
Если это раздражает, можно завести себе байтовый сегмент после последней команды и класть туда все константы начиная с ORG (LASTCOMMAND+2)*2. Тогда умножать не придется, но проявятся различные темные стороны разных ассемблеров. Так штаа...
E-mail: info@telesys.ru