|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
|||||||||||
Реализация программной многозадачности. Проблема возникает при использовании "нового" стека26.01.2014, 23:51. Показов 1995. Ответов 15
Метки нет (Все метки)
Приветствую, обитатели форума.
Пытаюсь реализовать программную многозадачность, ибо аппаратная не устраивает по некоторым причинам. Установила таблицу прерываний, задачи и механизм переключения по принципу делителя частоты. Проблема возникает при использовании "нового" стека. Если не трогать ESP и воспользоваться вставкой типа
Перед этим, в этот стек пихаю: EIP Со смещением первой команды задачи CS С исходным значением EFLAGS Есть подозрения, что трабла в этом
0
|
|||||||||||
| 26.01.2014, 23:51 | |
|
Ответы с готовыми решениями:
15
Реализация стека целых чисел. Процедура добавления нового элемента, удаление, вывод стека Проблема при программной вставке столбца Реализация аппаратной многозадачности |
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 27.01.2014, 08:37 | |
|
можно весь кодес переключения?
0
|
|
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
||||||
| 27.01.2014, 11:12 [ТС] | ||||||
|
sh2ezo,
0
|
||||||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
||||||
| 27.01.2014, 14:31 | ||||||
|
ммммм...
600000h и 700000h - это вершины стеков. Пропашенные данные окажутся не над вершинами, а под ними. т.е. надо сделать как-то так:
1
|
||||||
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
|
| 28.01.2014, 04:59 [ТС] | |
|
sh2ezo, благодарю, помогло. И еще вопрос. Команды типа push\pop и iretd как-то влияют на ESP? Не то в противном случае выходит, что при возникновении прерывания стек начинает расти вниз со скорость 12 байт-цикл, а iretd читает уже освобожденную область стека.
Добавлено через 1 час 45 минут Все, получилось. Последняя проблема была в CALL, ибо он использует стек. Если поставить его между CLI и STI, то все замечательно работает. Получается какая-то гибридная многозадачность, с возможностью выполнения отрывков кода в реальном времени. Именно то, что мне нужно. sh2ezo, еще раз, спасибо.
0
|
|
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 28.01.2014, 09:53 | |
|
0
|
|
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
||
| 28.01.2014, 10:20 [ТС] | ||
|
0
|
||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 28.01.2014, 10:36 | |
|
странно, однако, что оставалось прежним..... кодес можно? и эмуль, на котором тесты проходят
0
|
|
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
|||||||||||
| 28.01.2014, 11:04 [ТС] | |||||||||||
|
sh2ezo,
Тут уже все отлажено, тестирую на dosbox.
0
|
|||||||||||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 28.01.2014, 11:15 | |
|
не. мне другой кодес. тот, где esp не меняет своего значения. очень интересно это
0
|
|
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
||||||
| 28.01.2014, 11:20 [ТС] | ||||||
|
Его не осталось, но было нечто вроде
0
|
||||||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
||||||
| 28.01.2014, 11:23 | ||||||
и CS до 4 байт расширяться должен
0
|
||||||
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
||
| 28.01.2014, 11:28 [ТС] | ||
|
0
|
||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 28.01.2014, 11:32 | |
|
с моей поправкой рабочий-то?
0
|
|
|
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
|
|
| 28.01.2014, 11:40 [ТС] | |
|
Да, рабочий.
Кстати, использование pushad\popad для сохранения и загрузки состояния задачи не наказуемо?
0
|
|
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 28.01.2014, 11:43 | |
|
в FASM'е обращение к памяти идет через [память], потому мой код и рабочий.
Не наказуемо, ведь важна лишь скорость переключения, в общем-то
0
|
|
| 28.01.2014, 11:43 | |
|
Помогаю со студенческими работами здесь
16
Возникает ошибка при использовании fscanf При использовании SaveAsBitmap() возникает ошибка Возникает ошибка при использовании SetFocus При использовании флеш-карты возникает интересная ситуация При создании нового класса возникает ряд ошибок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|