Недопонял. Но поскольку TAIV расположен в нижней части Flash, то он определен как
С какого перепугу TAIV попал во флеш? Он лежит в ОЗУ.
Поэтому компилятор Си должен обязан разместить тело обработчика прерывания, в котором идет обращение к TAIV, в "нижней" части Flash
Опять же, почему? Обращаться к ОЗУ можно из любой точки программы. Другое дело, что вторым операндом команды ADDA должен быть регистр, а не адрес в ОЗУ. Вопрошающему надо использовать ADDX вместо ADDA.