![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Пытаюсь настроить прерывания в защищённом режиме, перенастроил PIC(включил таймер и клавиатуру)
PC уходит в reboot после как разрешаю прерывания в Protected mode с помощью команды sti. В чем может быть проблема? boot.asm Код:
Код:
|
![]() |
![]() |
![]() |
#2 | |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
С этой проблемой пока разобрался. Но теперь выскакивает GP, а потом проблема с памятью и qemu завершает работу и пишет значения регистров.
Цитата:
С чем это может быть связанно? |
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
имхо что-то со-стеком у тебя глюки - SS зашкаливает...
вот значения сегментных регистров из твоего лога: Код:
здесь указаны результаты трейса обоих типов: и кода ядра, и кода юзера. это мои недавние эксперименты (к твоему коду отношения не имеют): Код:
эти три (как показали мои опыты) - постоянны.
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
А зачем отдельный селектор для видеопамяти?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Да как бы не зашкаливает, я для ss селектор описывал 18h, убирал (оставлял адрес из реального режима) разницы ноль. Только если селектор стека определен, то в reboot уходит. Но перед reboot #GP успевает поймать исключение.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Разобрался регистр esp переполнялся и выходил за пределы селектора стэка. Т.к. GP кладёт в стек 4 байта кода ошибки.(При #GP, забирал значение из стека) А вот теперь вопрос, что за ошибка может быть?
Последний раз редактировалось Nikolay2015; 11.12.2017 в 01:00. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Прошёлся отладчиком висит на кодe jmp $ долго прыгает, но потом через (неизвестное) количество тактов выпадает #GP
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
![]()
Один момент. При исключении #GP код ошибки равен 0102h, что это значит не знаю.
Такого селектора у меня нет, да и нигде я его не загружал. Откуда такой код ошибки? И при чём #GP срабатывает всегда, то есть не 1 раз , а повторяется. Через некоторое количество тактов которое я не могу узнать, даже через отладчик, т.к. даже в отладчике я не дошёл до обработчика #GP Пробовал: Разрешаю NMI sti 1) jmp $ 2) hlt 3) halt: nop jmp halt Последний раз редактировалось Nikolay2015; 11.12.2017 в 05:03. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с циклом. Компилируется нормально,кнопки Один,Два,Три,Четыре и Пять работают хорошо,но кнопки 6 и 7 не работают. | Bananiys24 | Общие вопросы по Java, Java SE, Kotlin | 1 | 16.06.2017 17:01 |
Как в МК работают аппаратные прерывания? | седьмой | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 13 | 05.05.2017 06:39 |
Не работают прерывания | xotonic | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 24.10.2014 21:18 |
прерывания | lilek | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 14.12.2010 20:44 |
Делфи и ассемблер. Не работают прерывания типа Int | Я_и | Общие вопросы Delphi | 8 | 11.12.2010 13:13 |