> man operating_systems
Переход на страницу  1 [2] 3 4 5
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dreamer
Пятница 08.04.2005 17:54

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
Это хорошо!!! А где эти команды вводить?

Жизнь на Линуксе есть!
Наверх
Dron
Пятница 08.04.2005 18:00


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Вообще у меня сделано как...
Ну у меня сразу в PM (GrUB)
потом я включаю страницы...
и только потом я включаю прерывания...

Главное пока не проинициализированы прерывания - все должно быть запрещено.

И еще важно стараться не допускать эксепшинов.. ибо эксепшины срабатывают по любому. (не смотря на то, запрещены прерывания или нет.)

Ну а так - берем бош и анализируем состояние до и после. кстати в логе бош обычно говорит по какой причине он выпал.

2Dreamer: насчет PM - nnivanov говорит что он и до того в PM...

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Dron
Пятница 08.04.2005 18:10


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
В консоли конечно... ты никак бош без встроенного дебагера юзаешь... если под виндой... вроде на сайте отдельно была версия с дебагером... порой...
под линухом надо указать в configure.

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
nnivanov
Пятница 08.04.2005 18:16

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
2Dreamer: Я вижу ты тоже запарился: вместо mov 0x10, %es надо писать пару mov 0x10, %ax и mov %ax, %es. ES ведь сегментный регистр. А у меня проблемы именно с прыжком, поскольку зацикливание помогает вполне.

2Dron: 0x66 - это просто префикс команды, работающей с 32-разрядными операндами. Используется в 32-разрядном режиме.

All: спасибо, что подсказали Bochs! А то меня уже на VMware потянуло.



- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dron
Пятница 08.04.2005 18:26


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
если у тебя в сегменте стоит USE32, то команды и так по умолчанию работают с 32-х битными операндами, и префикс производит обратное действие... то есть команда рассматривается как 16-битная.

насчет боша - не забуть про встроенный дебагер. без него не разберешься.

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Roman I Khimov
Пятница 08.04.2005 19:52

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
Кстати, обожаю дзенский метод - без дебаггера.

Вот так вот вперишь взгляд в код из позы лотоса и сразу все видно.


Греби и улыбайся!
Наверх
Сайт
nnivanov
Пятница 08.04.2005 20:48

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
2Roman: Вот и я так уже год в мозгу своем дампы памяти строю. Вот эмулятор добрые люди посоветовали, буду разбираться.

2Dron: а эти все навороты (gui, debugger etc.) отдельными пакетами идут? А что касается use32 (в AT&T это .code32), то это не принципиально. Убирал я этот 0x66 и дескриптор делал 16-битным и адреса менял, все бесполезно. Думаю, что bochs поможет. Спасибо.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dreamer
Суббота 09.04.2005 20:33

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
2nnivanov: ничего подобного. Код у меня компилировался нормально, но не работал. Кстати, нашел ошибку: неверно были указаны адреса на GDT и на цель прыжка. И кроме того, я забыл определить в 32-битном коде use32. Теперь все ОК.

Дебагер bochs - классная вещь! Как раз им я и отловил ошибки.

Жизнь на Линуксе есть!
Наверх
nnivanov
Воскресенье 10.04.2005 13:49

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
2Dreamer: Это чудеса какие-то. Неужели возможно в сегментный регистр записать непосредственный операнд. Даже попробую сегодня. А как ты вычислял адрес gdt? Может быть и у меня здесь ошибка? А с дебаггером у меня проблема

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dreamer
Воскресенье 10.04.2005 21:13

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
Конечно, сегментные регистры я заполнял через AX. Проблема была в том, что GDTR указывал на GDT без учета сегмента, в котором был сам код. Прибавил значение сегмента*10 - все стало нормально. Если я не ошибаюсь, это можно исправить, задействовав директиву org, но... что-то неохота Да и все уже работает, так что бояться тут нечего.

Жизнь на Линуксе есть!
Наверх
Переход на страницу  1 [2] 3 4 5  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.