ATMega644, WinAVR 20081124rc3
Возникла проблема: не удается перенести таблицу векторов прерываний в область загрузчика

Необходимо изменить IVSEL в течении 4 машинных циклов, пока активен IVCE?
Цитата(ATMega644 Datasheet)
To avoid unintentional changes of Interrupt Vector tables, a special write procedure must
be followed to change the IVSEL bit:
a. Write the Interrupt Vector Change Enable (IVCE) bit to one.
b. Within four cycles, write the desired value to IVSEL while writing a zero to IVCE.
be followed to change the IVSEL bit:
a. Write the Interrupt Vector Change Enable (IVCE) bit to one.
b. Within four cycles, write the desired value to IVSEL while writing a zero to IVCE.
Делаю следующее:
Код
MCUCR |= (1 << IVCE);
MCUCR |= (1 << IVSEL);
MCUCR &= ~(1 << IVCE);
MCUCR |= (1 << IVSEL);
MCUCR &= ~(1 << IVCE);
Оптимизация -Os:
Код
MCUCR |= (1 << IVCE);
e000: 85 b7 in r24, 0x35 ; 53
e002: 81 60 ori r24, 0x01 ; 1
e004: 85 bf out 0x35, r24 ; 53
MCUCR |= (1 << IVSEL);
e006: 85 b7 in r24, 0x35 ; 53
e008: 82 60 ori r24, 0x02 ; 2
e00a: 85 bf out 0x35, r24 ; 53
MCUCR &= ~(1 << IVCE);
e00c: 85 b7 in r24, 0x35 ; 53
e00e: 8e 7f andi r24, 0xFE ; 254
e010: 85 bf out 0x35, r24 ; 53
e000: 85 b7 in r24, 0x35 ; 53
e002: 81 60 ori r24, 0x01 ; 1
e004: 85 bf out 0x35, r24 ; 53
MCUCR |= (1 << IVSEL);
e006: 85 b7 in r24, 0x35 ; 53
e008: 82 60 ori r24, 0x02 ; 2
e00a: 85 bf out 0x35, r24 ; 53
MCUCR &= ~(1 << IVCE);
e00c: 85 b7 in r24, 0x35 ; 53
e00e: 8e 7f andi r24, 0xFE ; 254
e010: 85 bf out 0x35, r24 ; 53
По результатам проверки на практике, таблица осталась в области приложения..
Что я делаю неверно, как нужно правильно делать?
Спасибо!