Вот как я поступаю с векторами прерываний:
Код: Выделить всё
.cseg
.org 0
;--------------------------------------------------
rjmp RESET
reti;rjmp EXT_INT0
reti;rjmp EXT_INT1
reti;rjmp TIM_COMP1A
reti;rjmp TIM_COMP1B
rjmp TIM_OVF1
reti;rjmp TIM_OVF0
reti;rjmp USI_STRT
reti;rjmp USI_OVF
rjmp EEP_RDY
reti;rjmp AN_COMPAR
reti;rjmp ADC_COMPLETE
;--------------------------------------------------
EEP_RDY:
..........
.........
reti
;--------------------------------------------------
TIM_OVF1:
.............
.........
reti
;--------------------------------------------------
RESET:
...........
........
......
То есть вместо вектора пишу RETI сразу
и после этой команды пишу вектор в виде комментария в той же строке.
Если вдруг мне потребовалось какое-то прерывание,
то я затираю команду reti и точку с запятой и остаётся там только нормальный вектор.
Потом ниже, после векторов пишу п\программу обработчика этого прерывания
с командой reti в конце, то есть как положено.
Почему я так делаю? То есть вписываю везде reti, а не с директивой .org , как писАл ARV?
А чтобы случайно из-за фазы луны

, погоды на улице, либо моего
настроения, или если вдруг Андрей_Р познакомится и предложит дружбу Лизе

,
не сработало какое-нибудь ненужное прерывание на пустую ячейку памяти и МК не ушёл в сброс.
А вдруг в этот момент выполнялась какая-то важная процедура?
А так сразу же напорится на RETI и без ущерба продолжит дальше.
И памяти меньше занимает, чем обычный метод с нагромождением пустых
п\программ обработчиков ненужных прерываний.