[an error occurred while processing this directive]
|
С первой частью вопроса я докопался : В прототипе ф-ции нельзя использовать модификаторы interrupt и др. Это треб. кейла.
А солнце прийдётся закатывать вручную, то есть по абсолютному адресу вектора прерывания прийдётся прописать LJMP на процедуру обработчика.
Идеологически здесь неприятность в том что файл С и файл асм друг с другом получаются логически не связанны на уровне компилятора.
Возможен и другой вариант : описать обработчик прерывания в С файле и в его теле писать на асме #pragma asm ... #pragma endasm.
А модификатор interrupt , по моему разумению , нужен для того чтобы компилятор знал что: возврат нужно делать по iret, в таблице вектороов по соотв. номеру необходимо поставить ljmp, ну может ещё выключить какую нибудь оптимизацию при генерации кода обработчика.
E-mail: info@telesys.ru