[uquote="Родэрик",url="/forum/viewtopic.php?p=4475365#p4475365"]
скажем так, прошлые страницы тоже нехило так позабавили, но нынче прям до слёз......[/uquote]
Ну что? вдоволь позабавились по поводу "Ё" и "о" ?
Ну тогда давайте разберём - что такое в пик16 - программная память

Адресация команд урезанная, всего 14 бит из 16-ти, полноценного перехода (линейного) по адресу нету

Табличного чтения НЕТ, а значит - можно уйти по некоему адресу, и вернуться оттуда - только если там будет команда "RETLW".
Обычно - это и выполняется в этих процах.
Естестевенно - ни ПИСАТЬ, ни ЧИТАТЬ таблично FLASH - этих процев невозможно!
Теперь давай посмотрим на запись:
//xc8
const uint8_t R1 @0x18D0=0xAA;
EEADR=(uint8_t)&R1;
EEADRH=((uint16_t)&R1)>>8;
константа адреса, которая равна 0xAA, ну ладно, с этим можно смириться, как и с тем, что САМ указав константу адреса - после (во второй строке) хочет её считать

...
Но третья строка: от значения 8 бит - сделать 16-надцать бит (ДОЛБНЮ понятно - что это НОЛЬ). что бы потом разместить в старший адрес
Здесь на форуме есть кто-нибудь, кто скажет - что такое пишут только после третьего тазика водки? или всем всё нравится ?
Ну и наконец последнее: а стесняюсь спросить - а что эти действия дают в плане прошивки?
ПОЛНОЕ значение из ПЗУ не считаешь - возможности данной серии камней не позволяют, записать тоже нельзя ...
Зачем знать адрес той ячейки, в которой разместил команду:
RETLW 0xxx ???
Ты её и так сохранил в качестве:
const uint8_t R1 &(0x18D0) = 0xAA;
Сам говорил что предпочитаешь правду, но ведёшься на другие правды
