Посл.ответ |
Сообщение |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 23 октября 2010 14:27 · Личное сообщение · #1
вот как я сделал IDTR
отключаем некоторые прерывания, на которых не имеется обработчиков:
собственно IDTR собственной персоны:
8-ой элемент для IDT
проблема: возникает #GP в случаях: 1) при тике таймер 2) int 8 успешно работает jmp на адрес, указанный в дескрипторе в чем может быть проблема ?
| Сообщение посчитали полезным: |
|
 Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 23 октября 2010 19:37 · Личное сообщение · #2
1)если IRQ от таймера закрыто то как оно у вас при тике в IDT попадает? 2) ну естественно если у вас в таблице IDT нет указателя на обработчик(к сожалению по памяти ее описание не помню, поэтому описание 8 елемента мне мало о чем говорит) таблица показывает что он есть ? или что его нет?
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 23 октября 2010 19:54 · Личное сообщение · #3
просматривал память, куда загружаю IDT он туда действительно попадает а так же смотрел таблицу страниц, что бы избежать недоразумений, что IDT загрузилась не туда... делал еще 0-ой и 3-ий элемент и пытался вызвать его таким образом int 0, int 3 соответственно... при int происходит #GP cdf2_23.10.2010_CRACKLAB.rU.tgz - IDTR.png
| Сообщение посчитали полезным: |
 Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 23 октября 2010 19:57 · Личное сообщение · #4
ну что бы избежать недоразумений со страничной адрессацией как в предыдущем топике про видео я бы на вашем месте сначала без нее все отладил а потому уже со страничной адресацией
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 23 октября 2010 20:05 · Личное сообщение · #5
да дело в том, что работало) а потом вдруг перестало)))
| Сообщение посчитали полезным: |
 Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 23 октября 2010 20:08 · Личное сообщение · #6
ревизию изменений нужно вести тогда легче понять что поламали
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 23 октября 2010 20:20 · Личное сообщение · #7
помнится мне я всего-навсего добавил пару процедурок, но они отрабатывают до инициализации IDT, так что никто IDT затереть не мог...
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 24 октября 2010 09:15 · Поправил: Clerk · Личное сообщение · #8
o Дескриптор валидный шлюза(смещение, сегмент и пр.) ? o Если используются межкольцевые переключения(понижение кпл), то должен быть валидным TSS(стек).
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 12:20 · Личное сообщение · #9
хм... у меня страничная адресация никакими TSS не заморачивался... я все эти действия делаю в страничной адресации стэк у меня, как был изначально указан на 0x7C00 так и не изменялся... при попытки его переправить в другое место так же возникает #GP
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 12:37 · Личное сообщение · #10
ой... #GP не возникает при замене стэка на другой, но он только как-то неправильно работает: у меня функция для вывода на экран значения регистра принимает его через стэк... в итоге этой функции ничего не пришло...
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 24 октября 2010 17:01 · Поправил: Clerk · Личное сообщение · #11
Прежде матчасть изучают, потом тока ось пишут, после того как общая картина известна станет. Вы же не знаете ничего про селекторы, дескрпторы, стек, TSS.. какая вам ось. Идите маны читайте. Ни тут, ни на васме, ни гделибо есчо вам не будут обьяснять основы.
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 17:33 · Личное сообщение · #12
Я знаю что такое селектор, что такое дескриптор, что такое стэк, знаю механизм сегментной адресации, знаю механизм страничной адресации исправно взаимодействую между страницами, вызываю процедуры загруженные в другие страницы, успешно работаю с таблицей стараниц и т. д. у меня изначально работал IDT успешно, потом я незнаю почему он начал давать сбои
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 17:34 · Личное сообщение · #13
и к тому же со стэком всё уладил, там просто не сразу увидел неточности...
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 24 октября 2010 18:03 · Личное сообщение · #14
Hell KnightДа вы даже не знаете что используете сегментацию: > у меня страничная адресация, не юзаю cs Обычно после изучения архитектуры хардварной изучают уже созданные оси, так учатся на ошибках других, иначе выйдет костыли типо линуса, где архитектуры нет.
| Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 24 октября 2010 18:06 · Личное сообщение · #15
иначе выйдет костыли типо линусаДа есть там архитектура миниксовая
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 18:07 · Личное сообщение · #16
т. е. получается, что при включении страничной адресации сегментация никуда не пропадает ? т. е. как бы работает 2 режима ? я про это не слышал... тогда это немного меняет ситуацию...
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 24 октября 2010 18:22 · Личное сообщение · #17
CoderessНет там архитектуры и изначально её небыло. МС фиксит по вторникам ошибки реализации, Торвальдс фиксит ошибки архитектуры. Тоесть после введения очередной убогой поделки призванной расширить какойто функционал, куча иных поделок отваливается. Вот и получилось невесть что, а не ось, хотя и работает кое как.
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 24 октября 2010 18:35 · Личное сообщение · #18
ткните пожалуйста пальцем в мануале где по этому вопросу я бы смог раскрыть эту проблему где ниболее полно будет рассказано про IDT, IDTR и обработку прерываний с английским языком дружу, так что разберусь
| Сообщение посчитали полезным: |
Ранг: 255.8 (наставник), 19thx Активность: 0.15↘0.01 Статус: Участник vx
|
Создано: 24 октября 2010 18:37 · Поправил: Clerk · Личное сообщение · #19 |
 Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 27 октября 2010 09:06 · Личное сообщение · #20
Clerk, пальцем в небо, блин.
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
 Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 27 октября 2010 09:08 · Личное сообщение · #21
www.sysersoft.com/download/IA-32%20Intel%20Architecture.zip вроде живая была
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 27 октября 2010 13:02 · Личное сообщение · #22
читаю я мануалы... у меня есть свежие... там еще рассматривается и IA-64, впринципе пока что(на данный момент, сколько прочитал), единственное, что новое для себя вынес это только про 64-bit режим, до этого информацию брал с васма
| Сообщение посчитали полезным: |
 Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 28 октября 2010 08:58 · Личное сообщение · #23
Hell KnightИ что - только по инфе с васма начали писать ось?
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 октября 2010 09:05 · Личное сообщение · #24
нет) у меня еще была инфа с wiki.osdev.org + Таненбаум
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 октября 2010 10:19 · Личное сообщение · #25 |
Ранг: 251.3 (наставник), 81thx Активность: 0.14↘0.11 Статус: Участник
|
Создано: 28 октября 2010 13:46 · Личное сообщение · #26
У тебя кривая GDT, либо ты в GDTR загрузил адрес без учёта страничной адресации (должен быть виртуальный). Селектор из CS не является селектором дескриптора сегмента кода, и по тройному исключению проц ребутится.
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 октября 2010 16:15 · Личное сообщение · #27
кстати, вполне возможный вариант, что в GDTR загружен адрес нерасчитанный на страничную адресацию... исправлю...
| Сообщение посчитали полезным: |
Ранг: 18.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 октября 2010 21:22 · Личное сообщение · #28
Всё! Как раз в этом и была проблема...
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 28 октября 2010 22:24 · Личное сообщение · #29
Тогда можно закрыть, видимо.
| Сообщение посчитали полезным: |