Так получилось, что я давно уже не работаю с асмом ia-32. Однако в данный момент есть срочная необходимость написать на нем некоторую dll. Здесь возник небольшой вопрос. Возможно ли расшарить регион секции .data (например, dword-переменную) путем импорта отдельного имени таким образом, чтобы стало валидным такое с данной переменной обращение: mov eax,dword ptr [shared_var] (прямое обращение к элементу секции импорта внешних имен)? Как не пытался, MASM версии 6.14 формирует указатель на регион импорта таким образом: mov eax,dword ptr [xxxxxxxx] xxxxxxxx: jmp shared_var Соответственно при выборке я получу не прямой указатель на регион, ассоциированный с внешним именем, настроенный системным загрузчиком, а фрагмент опкода jmp и смещения в соответствующей секции. Может кто-нибудь подскажет, каким образом я должен задекларировать имя переменной, чтобы не получить указатель на jmp-редиректор?
Stonebearer Нужно использовать другие либы, которые не генерят переход на jmp. Находятся на этом сайте или же можно самому объявить необходимые функции для импорта.
вообщето надо в DLL объявить переменную как Public varname и включить ее имя в def файл, т.о. переменная будет экспортироваться как и какие-нибудь процедуры. Можно расшарить всю секцию, например data? \masm32\bin\link.exe /SECTION:.bss,S /DLL /DEF:mydll.def /SUBSYSTEM:WINDOWS /LIBPATH:\masm32\lib mydll.obj