Разбираюсь я с переключением задач в защищенном режиме и вот натолкнулся на одну трудность... Имеются две задачи, первая переключается на вторую, вторая - на первую и первая зависает...(гениально!) Все вроде работает, но стоит из первой задичи вызвать функцию, написанную например на СИ - и вторая задача уже не переключается на первую, а перезагружает комп.. Вот так все это выглядит: task1: call func ;;??? ... jmp TSS_SEL:0 z: jmp z task2: ... jmp TSS_SEL:0 jmp task2 Инструкция call вроде тоже переключает задачи? Тогда как же функции вызывать? Неужели для каждой функции своя задача? Видимо я где-то сильно прокалываюсь... Ткните носиком..
Это мой первый пост в этот форум. Сайт, на котором он есть, я уже сто раз скачал, сто раз прочитал. Настало время и помоч кому-то. О великий speck! Полгода назад я писал свою ось, которая грузилась с дискеты и делала много задач. НО я никогда не использовал си. В вашем случае может быть -Функция за пределами задачи, которая ее пытается вызвать и ничего на этот счет не предпринято. -Функций CALL разных несколько. Если она ближняя - вызовет функцию, если дальняя - смотря на что указывает.
В таких случаях лучше не полениться и написать свои обработчики исключений - хотя бы с указанием номера исключения и адреса команды. Для получения опкода команды исключения лучше определить дескриптор-псевдоним на все пространство. Кажется, где-то в форуме я уже постил такой код, да и в статьях наверняка есть...