Мне нужно отключить гобальные прерывания сразу после срабатывания прерывания. MCU 8051
Если написать в самом начале обработчика EA=0, то после сборки я вижу, что сначала в программный стек сохраняются регистры а уже потом выполняется EA=0. Т.е. есть риск вытеснения.
На каждый вектор выделяется по 8байт. Я подумал, что можно сделать конструкцию вида clr EA jmp Interrupt
Но я могу двигать только "jmp Interrupt" и все. Компилятор не разрешает вносить изменения в секцию INTVEC.
Как выкрутиться??
Программа минимум. Это выключать прерывание первой инструкцией в обработчике. Программа максимум. Сдвинуть jmp на обработчик и вставить сброс флага.
|