![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GreenPiece |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
Добрый день.
Как сделать так, чтобы переменная находилась в секции кода, а не данных? Причем нужно сделать так, что она была не стековой переменной, не хранилась в регистрах, а находилась именно в секции кода. Есть в файле секции: .textbss .text .rdata .data Если я просто объявляю переменную (int c), а потом как-то присваиваю ей значение, то компилятор делает эту переменную стековой (MOV DWORD PTR SS:[EBP-68],EAX). Если объявляю ее как static int c, то при просмотре в IDA получается "mov $1, eax", а $1 хранится в секции .data, хотя в этой статье:http://www.rsdn.ru/article/baseserv/pe_coff.xml сказано, что "в секции .bss хранятся неинициализированные статические и глобальные переменные". .textbss и .bss как-то отличаются? Что все-таки нужно сделать с переменной, чтобы она была в секции кода? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Если не ошибаюсь, только через ассемблер и db.
-------------------- ... |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Только учтите, что писать в такую 'переменную' не получится - секция кода закрыта по записи |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
У GCC есть такой атрибут: __attribute__ ((section (".section_name")))
Я его в программировании для x86-процессоров не применял, но для контроллеров AVR он делает именно то, что требуется -- помещает переменную в заданную секцию ELF-файла. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
#pragma section часом не поможет (раз уж идет речь про win)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| GreenPiece |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 25.1.2011 Репутация: нет Всего: нет |
Спасибо, сейчас попробую.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |