OSDev

для всех
Текущее время: 28 апр 2024, 00:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 18:04 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
pavia писал(а):
phantom-84, по моему ты ошибаешься в расчётах.

В каких?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 18:22 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
pavia писал(а):
phantom-84, по моему ты ошибаешься в расчётах, для сегмента растущего вниз.
Я могу ошибаться только насчет 1-мегабайтной верхней границы при использовании байтовой гранулярности лимита. Во всем остальном навряд ли, т.к. когда-то (лет 5 назад), до перехода на чистую FLAT-модель, использовал в своем ядре растущие вниз сегменты, только со страничной (4 кб) гранулярностью. Кстати даже тогда внутри этих сегментов использовались FLAT-смещения, т.к. база сегментов (хранящаяся в дескрипторах) всегда была нулевой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 19:18 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Fatal_Error писал(а):
1.Я наконец-то понял как работает стек
2.Я намеренно не использую память flat. В моих целях она мне не нужна.
3.Флаг D по умолчанию 0, поэтому я не использую cld
4.Сегменты мне для того, чтобы понять сегментацию в pm, чего я добился
5. Спасибо phantom-84 за объяснение :)
6. А в каком видео режиме работает винда/линукс?


1) Стек работает очень просто.
2) Стек лучше ограничить. Я бы в вашем случае ограничил приделом.
3) Вообще-то оно не определено. Поэтому CLD надо использовать.
6) :lol: В любом. VGA, SVGA.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 19:34 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
phantom-84 писал(а):
pavia писал(а):
phantom-84, по моему ты ошибаешься в расчётах, для сегмента растущего вниз.
Я могу ошибаться только насчет 1-мегабайтной верхней границы при использовании байтовой гранулярности лимита. Во всем остальном навряд ли, т.к. когда-то (лет 5 назад), до перехода на чистую FLAT-модель, использовал в своем ядре растущие вниз сегменты, только со страничной (4 кб) гранулярностью. Кстати даже тогда внутри этих сегментов использовались FLAT-смещения, т.к. база сегментов (хранящаяся в дескрипторах) всегда была нулевой.


Если флаг B установлен диапазон корректных смещений от (действующий предел + 1) к FFFFFFFFH, и если флаг B очищен от (действующей предел + 1) к FFFFH. У вниз расширенного сегмента будет максимальный размер, когда предел сегмента 0.

По поводу остального не проверяю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 20:12 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
pavia писал(а):
3) Вообще-то оно не определено. Поэтому CLD надо использовать.

насколько я знаю флаг DF должен быть сброшен, если его программно не подняли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 20:18 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
pavia писал(а):
Если флаг B установлен диапазон корректных смещений от (действующий предел + 1) к FFFFFFFFH, и если флаг B очищен от (действующей предел + 1) к FFFFH. У вниз расширенного сегмента будет максимальный размер, когда предел сегмента 0.
В дескрипторе флаг B установлен. Я как раз и сказал, что могу ошибаться насчет верхней границы. Возможно, это не 1 мег, а 4 гига вне зависимости от значения флага гранулярности. Но ведь это не ошибка в расчетах. Кстати если про 0FFFFFFFFh в руководстве по процам написано то, что ты сказал, еще не факт, что это справедливо для G=0. Зачем ты сказал про максимальный размер при лимите, равном нулю, я не понял. Разве в моих словах что-то этому противоречит?

Fatal_Error писал(а):
насколько я знаю флаг DF должен быть сброшен, если его программно не подняли.
А почему ты так уверен, что "его программно не подняли" до того, как получил управление твой код?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 03 мар 2013, 21:08 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
phantom-84 писал(а):
А почему ты так уверен, что "его программно не подняли" до того, как получил управление твой код?

интуиция) нигде не юзал cld... всегда прокатывало, уже в привычку вошло. сколько кодил, никогда не видел чтобы он был поднят при старте проги.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 08 мар 2013, 03:25 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
это снова я :D сегодня у меня такой вопрос: что нужно чтобы прочесть жесткий диск\CD\DVD через EDD?
у меня такой код:
Код:
org 100h
start:

 mov dx, 80h
 mov ah,41h
 mov bx,55AAh
 int 13h
 mov ax, 0B800h
 mov es, ax
 mov dword ptr es:0, '5555'
 mov ah,42h
 mov si,Packet
 
 mov word ptr ds:pAddr+2,ds
 int 13h
 adc byte ptr es:0, 0
 jmp $


Packet:
  pSize db 10h   
  pRes1 db 0 
  pNum db 1 
  pRes2 db 0 
  pAddr dd 800h
  pLBA dq 0

41 функция без проблем, в ah 3 в сх 7, а вот на 42 биос дает ошибку и вешает машину. Int13_harddisk. function 42. Can't use 64 bit LBA


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 08 мар 2013, 08:45 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
баг исправил. забыл первыми строками прописать
Код:
mov ax, data_seg
mov ds, ax


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не грузится ядро
СообщениеДобавлено: 18 мар 2013, 16:34 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Fatal_Error писал(а):
phantom-84 писал(а):
А почему ты так уверен, что "его программно не подняли" до того, как получил управление твой код?

интуиция) нигде не юзал cld... всегда прокатывало, уже в привычку вошло. сколько кодил, никогда не видел чтобы он был поднят при старте проги.

Интуиция может сработать на твоём компе, но совершенно не прокатит на остальных. Я, например, сталкивался с БИОСами, после вызова функций которых флаг находился в установленном состоянии, даже если я его сбрасывал перед тем. Так что, даже если ты его нигде не устанавливал, это совершенно не означает, что он будет сброшен в нужный тебе момент времени.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB