OSDev
http://osdev.su/

Хранение кода и данных в памяти
http://osdev.su/viewtopic.php?f=5&t=370
Страница 2 из 2

Автор:  qeos [ 14 янв 2011, 18:21 ]
Заголовок сообщения:  Re: Хранение кода и данных в памяти

KIV писал(а):
На мой взгляд самое лучше - пи код. Поскольку релоки могут занимать много места и требуют усложнения загрузчика.

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

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

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

Автор:  Himik [ 14 янв 2011, 19:26 ]
Заголовок сообщения:  Re: Хранение кода и данных в памяти

KIV писал(а):
На мой взгляд самое лучше - пи код. Поскольку релоки могут занимать много места и требуют усложнения загрузчика.

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

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