Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2013, 21:59   #1
Антон Ос
Пользователь
 
Регистрация: 06.12.2011
Сообщений: 65
По умолчанию вопрос по адресации памяти (возможно глупый)

В книге Финогенова есть такие строки:

Начальный адрес сегмента без четырех младших битов, т.е. деленный на 16, помещается в один из сегментных регистров и называется сегментным адресом. Сам же начальный адрес хранится в специальном внутреннем регистре процессора, называемом теневым регистром. Для каждого сегментного регистра имеется свой теневой регистр; начальный адрес сегмента загружается в него процессором в тот момент, когда программа заносит в соответствующий сегментный регистр новое значение сегментного адреса.

Вопрос: что это за теневой регистр такой и почему начальный адрес надо загружать в этот регистр, а не непосредственно в сегментный?
Антон Ос вне форума Ответить с цитированием
Старый 02.01.2013, 08:24   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Антон Ос
вопрос в том, в каком режиме ты собираешься писать программу:
  • для реального режима -- старшая часть адреса грузится в сегментный регистр (DS, ES, FS, GS, SS) младшая в РОН или регистр указатель
  • в защищенном -- примерно так как написано у Финогенова
  • чтобы разобраться с теневым регистром не стоит ограничиваться одним автором, а лучше прочитать цикл статей, например, здесь, здесь или здесь

Последний раз редактировалось Mikl___; 02.01.2013 в 08:44.
Mikl___ вне форума Ответить с цитированием
Старый 02.01.2013, 13:02   #3
Станислав1
http://www.asmcode
Пользователь
 
Регистрация: 16.11.2011
Сообщений: 15
По умолчанию

Если речь идёт о защищенном, то там у сегмента(селектора вообщето) 4 бита как информационные биты(там TI и RPL)(их ни кто не делит, а просто записи 8-байтнае), а сегменты становятся селекторами для реализации защиты, адрес 32-битный и спокойно все 4Гб адресуют. В реальном 16битный адрес, и к нему добавляется сегментный(указатель на сегмент размером 16^2), как часть адреса 24-битног и знать нужно только то, что у тебя в сегментном регистре часть адреса. http://forum.sources.ru/index.php?showtopic=89435
мои записи http://asmcode.ru/viewtopic.php?f=2&t=13&p=13#

Последний раз редактировалось Станислав1; 02.01.2013 в 14:00.
Станислав1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ ))) Очень глупый вопрос) Katus Свободное общение 3 26.04.2012 17:33
Глупый вопрос по с CaXaH Общие вопросы C/C++ 2 18.02.2012 11:20
C# глупый вопрос PMike Помощь студентам 3 08.04.2009 08:26
глупый вопрос ryton Свободное общение 3 06.06.2008 13:44