![]() |
|
|
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
почему неконстантное, и как сделать константным? |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: нет Всего: 23 |
чем так плохо:
видимо глюк масма, потому что на самом деле адрес метки это константное значение Это сообщение отредактировал(а) ИванМ - 30.3.2010, 21:41 |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: нет Всего: 23 |
а вообще я торможу. реальные адреса будут известны только после выполнения программы, система сама их проставит (+ImageBase, +VirtualOffset). так что адреса меток это неконстантные значения, и можно делать только через mov и sub, как я написал
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
да что ты говоришь, неужели все инструкции с операндом типа offset можно на свалку выкидывать, раз статически никакие адреса не узнать?) mov eax, offset code_end компилится как mov eax, 100000xxx если код грузится по другой базе - все смещения корректируются таблицей релоков но в любом случае, разница между адресами - она постоянная, какая бы база ни была |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: нет Всего: 23 |
прошу пердона)
offset определяет только смещение в текущем сегменте |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |