На то существуют файлы линкера - особо не углублялся, но поднятый вопрос заинтересовал "на посмотреть"...
К примеру взял
12f629_g.lkr
Спойлер
Код: Выделить всё
#IFDEF _DEBUGDATASTART
SHAREBANK NAME=dbgnobnk START=0x20 END=0x20 PROTECTED
SHAREBANK NAME=dbgnobnk START=0xA0 END=0xA0 PROTECTED
SHAREBANK NAME=gpr0 START=0x21 END=0x5F
SHAREBANK NAME=gpr0 START=0xA1 END=0xDF PROTECTED
#ELSE
SHAREBANK NAME=gpr0 START=0x20 END=0x5F
SHAREBANK NAME=gpr0 START=0xA0 END=0xDF PROTECTED
#FI
и
16f628_g.lkr
Спойлер
Код: Выделить всё
#IFDEF _DEBUGDATASTART
SHAREBANK NAME=dbgnobnk START=0x70 END=0x70 PROTECTED
SHAREBANK NAME=dbgnobnk START=0xF0 END=0xF0 PROTECTED
SHAREBANK NAME=dbgnobnk START=0x170 END=0x170 PROTECTED
SHAREBANK NAME=dbgnobnk START=0x1F0 END=0x1F0 PROTECTED
SHAREBANK NAME=gprnobnk START=0x71 END=0x7F
SHAREBANK NAME=gprnobnk START=0xF1 END=0xFF PROTECTED
SHAREBANK NAME=gprnobnk START=0x171 END=0x17F PROTECTED
SHAREBANK NAME=gprnobnk START=0x1F1 END=0x1FF PROTECTED
#ELSE
SHAREBANK NAME=gprnobnk START=0x70 END=0x7F
SHAREBANK NAME=gprnobnk START=0xF0 END=0xFF PROTECTED
SHAREBANK NAME=gprnobnk START=0x170 END=0x17F PROTECTED
SHAREBANK NAME=gprnobnk START=0x1F0 END=0x1FF PROTECTED
#FI
границы таки прописаны достаточно явно...
И так по каждому кристаллу, обрабатываемому имеющейся версией мплаба (и его "сопутствующими компонентами").
Итогом в каждом проекте под ассемблером имеем три обязательных вспомогательных файла
файл описания ресурсов железа МК
name_mk.inc (C:\Program Files\Microchip\MPASM Suite);
файл настроек линкера
name_mk_g.lkr (C:\Program Files\Microchip\MPASM Suite\LKR);
и в зависимости от предпочтений в работе выбираем шаблон:
name_mkTMPO.asm (C:\Program Files\Microchip\MPASM Suite\Template\Object)
или
name_mkTEMP.asm (C:\Program Files\Microchip\MPASM Suite\Template\Code).
А дальше уж свою прожку пишем.

Поправил названия файлов шаблонов...
Просклерозил однако чуток...
