OSDev

для всех
Текущее время: 30 апр 2024, 09:39

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Хранение кода и данных в памяти
СообщениеДобавлено: 14 янв 2011, 18:21 

Зарегистрирован: 30 янв 2010, 19:44
Сообщения: 63
KIV писал(а):
На мой взгляд самое лучше - пи код. Поскольку релоки могут занимать много места и требуют усложнения загрузчика.

Как я понял это тоже самое что и байт-код. Т.е. ты считаешь потеря производительности при выполнении команды байт-кода более оправдано, чем немного больше места для релока?
KIV писал(а):
Но делать таблицу переменных считаю не рациональным - достаточно одного базового адреса, а смещения в этом блоке уже жёстко заданы в программе, хотя это не мешает разместить данные в любом месте памяти указав другую базу.

Точно! чтото я просто не додумался, что достаточно добавить макрос, который будет:
- получить смещение относительно программы (это то что мне мешало переносить код в другое место)
- отнять от этого смешения адрес начала данных (получается смещение относительно начала данных)
- прибавить к этому смещению EBX (адрес, где реально разместились данные)
Все. Никаких RVA таблиц не нужно! )) Гениальное - просто.
KIV писал(а):
(кстати, лучше не ESI, а EBX, чтобы не лишать программиста строковых команд)

Полезно. Спасибо. Хотя еще не пробовал использовать, как предлагалось, сегментные регистры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Хранение кода и данных в памяти
СообщениеДобавлено: 14 янв 2011, 19:26 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
KIV писал(а):
На мой взгляд самое лучше - пи код. Поскольку релоки могут занимать много места и требуют усложнения загрузчика.

Это не значит, что нужно лелеять примитивизм. Не нужно бояться сложностей.
Применение базовых смещений усложняет код гораздо больше.


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

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


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

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


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

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