не так то, что компилятор кладёт код в область таблицы векторов прерываний. И код этот начинает чудить. По сути не работает. Причины, почему код не хочет нормально работать в таблице векторов до конца не ясны.
По всей видимости процессор воспринимает LJMP в этой области как autovector, подменяет адрес и прыгает в следующую таблицу векторов, которой нет. В итоге код теряет управление и делает что попало.
Вот тут я привёл вариант как это получилось обойти, но это костыли:
http://caxapa.ru/852440.html