Там только две страницы (0 и 1) по 512 командных слов. Или Вы что то другое имели ввиду?
В любом случае хотелось бы чисто математически однозначно убедится влияют ли операции с PCL на верхние биты программного счётчика (из манов следует что не влияют, но симулятор показывает обратное) и выполняются ли они строго по модульной арифметике как это происходит с любым другим регистром.
Опять же симулятор показывает, что нет. Что видно из числовых примеров в посте.
Я попробую поделать экспериментов и доложу по эмпирике.
Попробую в разных симуляторах. (Программатор забрали гады
, на 12F510 его и не было ещё а с 16F84 можно было бы поэкспериментировать - проверить на практике повлияют ли операции с PCL на старшие биты счётчика).
Беда в том, что симуляторы, дебагеры и т.п. пишут люди. А людям свойственно ошибаться. Просто я часто на опыте своём обнаруживал ошибки в софте, и сам писал подобный.
Код о котором я писал пробывался на MPLAB SIM, который идёт с MPLAB IDE 7.42
Я в нём попробывал посмотреть а как будет влиять на верхние биты счётчика операции с PCL когда в них › 0.
Такой же странный результат.
Причём если до их же пропишешь (они уже там! есть). Т.е. те же самые биты которые там уже есть ещё раз принудительно запишешь! То работает без странностей.
Из чего подозрение, что это глюк софта.
Хочу попробывать с симулятором из старого MPLAB. Там нет поддержки 12F510 но можно посмотреть на 16F84 (в новом то симуляторе он тоже даёт причудливый результат)
Т.е. вопрос простой - влияют ли операции с PCL на старшие биты PC (которые в PCL на входят) или нет, и работают ли эти операции так как с любым другим регистор т.е. 2+2=4 там или как показывает симулятор 2+2= не четыре в PCL если в старших битах не 0.