8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
|
||||||
1 | ||||||
Прерывания в ОСи: прототип функции-обработчика01.10.2015, 21:04. Показов 1371. Ответов 6
Метки нет (Все метки)
Как реализовать прерывания на C++. Какой должен быть прототип функции-обработчика. Как делать выход из обработчика. Mожет callback надо делать? Я сделал так:
0
|
01.10.2015, 21:04 | |
Ответы с готовыми решениями:
6
Выход из цикла в функции обработчика прерывания Возврат из обработчика прерывания. Выход из обработчика прерывания Выход из обработчика прерывания |
Ушел с форума
16344 / 7662 / 1076
Регистрация: 11.11.2010
Сообщений: 13,712
|
|
02.10.2015, 04:02 | 2 |
Вадик_,
чтобы iret нормально отработал в стек нужно занести три параметра текущее содержимое регистра флагов EFLAG (команда pushf) текущее содержимое регистра CS (команда push cs) и адрес возврата из прерывания (push адрес_возврата) но под Windows система не даст вызвать прерывание пользователя, только под "чистым" DOS или, на худой конец, в режиме эмуляции DOS
0
|
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
|
|
02.10.2015, 10:02 [ТС] | 3 |
Я ось свою пишу, а не программирую под windows. Мне надо прототип обработчика.
0
|
Ушел с форума
16344 / 7662 / 1076
Регистрация: 11.11.2010
Сообщений: 13,712
|
||||||
02.10.2015, 10:25 | 4 | |||||
0
|
1377 / 521 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
|
|
02.10.2015, 10:45 | 5 |
Обработчик не получится написать на ЯВУ. Но можно написать обертку на асме и уже внутри вызывать сишную функцию. Для этого можно даже макрос сделать. В обертке обязательно перед вызовов с-функции сохранять все регистры общего назначения, после-восстанавливать. Все остальные варианты приведут к переполнению стека из-за несовместимости со стековым кадром.
0
|
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
|
|
02.10.2015, 14:59 [ТС] | 6 |
Код можно?
0
|
|
||||||
21.10.2015, 23:34 | 7 | |||||
На сколько я помню там есть необязательный параметр - код ошибки. Т.е. нужно делать ф-цию с переменным кол-вом аргументов
Добавлено через 3 минуты Там же на каждое исключение можно свой обработчик повешать, вся процедура заключяется в указании адреса обработчика. Внутри обработчика уже решать что тебе нужно со стека снять (вернее что там лежит в зависимости от номера прерывания)
1
|
21.10.2015, 23:34 | |
21.10.2015, 23:34 | |
Помогаю со студенческими работами здесь
7
Выгрузка резидента из обработчика прерывания Сброс обработчика прерывания из более приоритетного прер-я Не работает эмуляция обработчика прерывания Print Screne Задержки на SysTick внутри обработчика прерывания, дребезг Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации
В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
|
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира
В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
|
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин
История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
|
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией
В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
|
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации
В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
|
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий
В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
|
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO
/ / https:/ / leetcode. com/ studyplan/ top-interview-150/
package topInterview
. . .
|
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
|
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
|
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
|
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
|
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации.
Исполнитель Чертежник работает на координатной плоскости, где может. . .
|