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