OSDev
http://osdev.su/

Сегментый описатель.
http://osdev.su/viewtopic.php?f=6&t=437
Страница 2 из 2

Автор:  Yoda [ 22 авг 2011, 17:21 ]
Заголовок сообщения:  Re: Сегментый описатель.

phantom-84 писал(а):
Но база сегмента ведь константа (ты сам сказал), так и объяви ее как константу.

Где это я сказал? Какая же это константа? Один сегмент начинается там, где кончается другой. База сегмента — такой же неопределённый адрес.

Автор:  phantom-84 [ 22 авг 2011, 18:50 ]
Заголовок сообщения:  Re: Сегментый описатель.

Я имел в виду вот это:
Цитата:
...несмотря на то, что они статические.

Если ты еще на этапе написания исходника определился с тем, где (по какому адресу) должны находиться сегменты, то их базовые адреса можно определить, как константы. И неважно, что сегменты идут друг за другом. База следующего сегмента = база предыдущего сегмента + размер сегмента (как разница между его начальным адресом и его конечным адресом) + паддинг (выравнивание на корректную/нужную границу сегмента). Может, я конечно и неадекватно оцениваю возможности nasm'а, но по крайней мере пока я не вижу существенных препятствий для достижения обозначенной цели.

Автор:  Yoda [ 23 авг 2011, 10:05 ]
Заголовок сообщения:  Re: Сегментый описатель.

Ну это, что назывется, через зопу автогеном :). Перебирать по очереди все сегменты, добавлять выравнивание, чтобы добраться до нужного адреса, теоретически можно, но проще и, самое главное, надёжней конвертировать GDT entry программно. А то потом после добавления очередного сегмента запарюсь искать, почему ядро перестало работать.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/