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/ |