ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
5 мая
1513847 Топик полностью
Nikolay_Po (24.04.2025 09:09, просмотров: 104) ответил SciFi на Вот пример, как надо: __attribute__((naked)) void my_handler_hpe(){ asm("call my_handler; mret"); }
По идее, не сработает. Если my_handler определить как простую функцию, то в конце у неё сработает обычный return и нарушит выполнение кода неподходящим возвратом. Может получиться так: 

__attribute__((naked)) void my_handler_hpe(){ goto my_handler: }


При этом, my_handler() определить как функцию-прерывание. Тогда и штатный пролог будет обеспечен компилятором, и mret сработает как надо. Как думаете, взлетит?