Код
NAME IntTable
extern switch_int
COMMON INTVEC(1)
ORG TIMER0_OVF_vect
JMP switch_int
ENDMOD
extern switch_int
COMMON INTVEC(1)
ORG TIMER0_OVF_vect
JMP switch_int
ENDMOD
А вот под STM8 вектора прерывания вставляются перед векторами размещенными С компилятором по коду:
Код
section .intvec:CODE
;-------------------------------------------------------------------------------
DS32 1;RESET
DS32 1;TRAP
DS32 1;NMI
DC32 $82000000 + switch_int
.........................
;-------------------------------------------------------------------------------
DS32 1;RESET
DS32 1;TRAP
DS32 1;NMI
DC32 $82000000 + switch_int
.........................
Или вектора прерываний затираются векторами определенными в С программе
Код
section .intvec:CODE:NOROOT(2)
;-------------------------------------------------------------------------------
DS32 1;RESET
DS32 1;TRAP
DS32 1;NMI
DC32 $82000000 + switch_int
;-------------------------------------------------------------------------------
DS32 1;RESET
DS32 1;TRAP
DS32 1;NMI
DC32 $82000000 + switch_int
Сразу поясняю что нужно мне именно на ассемблере, т.к. это процедура переключения контентов в своей кооперативной ОС.