[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Я так понял что всё что идёт до DEMO_FILE это шапка данного массива, после команды MOVWF PCL, начинается непосредственно массив значений который хранится в файле DEMO.LPC (в каком формате этот файл).
При инициализации заносить физический адрес метки DEMO_FILE надо в PLAY_PAGE и DEMO_FILE (ст. и мл. байты соответственно) ? Может стоит в таком случае "жёстко" привязать шапку командой ORG или оставить данные инструкции как есть в тексте - надеюсь копмилятор их сам обработает(адрес метки разделит и подставит). В принципе разберусь.
Теперь по самой шапке, то что работаем с счётчиком команд это ясно(ложим туда двух байтный адрес ячейки массива) но за счёт чего вылетаем потом из массива обратно - извиняюсь не понимаю точнее кто retlw делает - там же голый массив с константами а не командами.
Потом если после 256 байт надо будет дальше грести (PCLATH уже разный будет) то как нам поможет:
MOVLW H'02'; - 2 это pclath вызвавшей процедуры, иначе вернётесь чёрте-куда:)) MOVWF PCLATH
Если мы уже и так улетели как только изменили PCLATH для доступа к очередной константе из таблицы ?
E-mail: info@telesys.ru