Не понял. Вначале скажу, что есть несколько больших проектов с такими опциями: -L-ACODE=00h-0FFFFh,010000h-01FFBFh -L-pconst=LOWCODE+1000h -L-plowtext=LOWCODE. И в тексте #pragma psect text=lowtext. Компилятор 9.51pl2. И в lowcode он размещает. Зачем: да затем, что иначе функции вызываемые по указателю в этом модуле невозможны (если адрес >= 0x10000). Единственное что замечено, что прагма должна идти в файле до любого кода. В конце, в файле включаемом через include и т.п. -- может не работать. Может в этом дело? То-есть нельзя одну функцию засунуть в конкретную секцию. Только весь .text для модуля целиком и прагма должна идти до кода, подчёркиваю.
Кроме того, я бы не рассматривал всякие дизассемблеры в картинках. После компоновки .lst файлы содержат реальные адреса. Вот приведи lst файла содержащего BootLoader и его .c эквиэвалент -- тогда станет ясно. А так непонятно что там понаписывано.
Но вообще я от lowtext и идеи класть функции в секции отказался в пользу
такого решения.