Все дальше парюсь... Вобщем написал такой нехитрый код: int main(){ float a = 10.2; while(1){ a /= 2.0; } return 0; }
Не использую никаких прерываний. Если из мейкфайла (из компиляции) удаляю все остальные свои коды, то при входе в функцию деления __divsf3 вижу: 0x4d8 <__divsf3>: mov r12, #255 ; 0xff 0x4dc <__divsf3+4>: ands r2, r12, r0, lsr #23 0x4e0 <__divsf3+8>: andsne r3, r12, r1, lsr #23 0x4e4 <__divsf3+12>: teqne r2, r12 ... Если включаю в компиляцию написанные модули, но main не меняю и в main.c ничего не дописываю, то при входе в __divsf3 вижу шлак: 0x35b0 <__divsf3>: andeq r0, r0, r0 0x35b4 <__divsf3+4>: andeq r0, r0, r0 0x35b8 <__divsf3+8>: andeq r0, r0, r0 0x35bc <__divsf3+12>: andeq r0, r0, r0 0x35c0 <__divsf3+16>: andeq r0, r0, r0 ... Что это может быть?
|