|
Вопрос # 5 604/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
У меня небольшой вопрос по-поводу программирования на TASM (думаю он
также касатеся и других ассемблеров).
Пишу на TASMe под Win не первый день. Но вот наткнулся на такую
ситуацию:
пишу прогу, которая по ходу выполения должна порождать потоки. (Типа
Web или FTP сервера). Когда пользователь подключается, для него
создается новый поток и выделяется память через GlobalAlloc.
Есть довольно непростая структура данных, для которой у Винды и просим
память. Адресую структуру естественно так: в eax помещаю адрес
выделенного участка и пишу, например mov edx,[eax+смещение] или lea
edx,[eax+смещение].
пример структуры
var1 dd ?
var2 db ?
str1 db 500 dup (?)
var3 dw ?
dd ?
dd ?
dd ?
var4 db ?
Можно вручную прописать макрозначения типа такого
var1=0
var2=4
str1=5
var3=505 и т.д.
но если структкра приличная, то труд получается нелегкий.
Можно все это объявить в udataseg
start_struct:
var1 dd ?
var2 db ?
str1 db 500 dup (?)
var3 dw ?
dd ?
dd ?
dd ?
var4 db ?
и обращатся так
mov edx,[eax+var1-start_struct]
но так тоже не совсем удобно, да и память она занимает при запуске, а
надо чтобы память выделялась под нее только динамически через
GlobalAlloc.
Собственно вопрос: есть ли такие средства в TASM,
чтобы объявить эту структуру, но не в памяти основной проги, а просто
так, чтобы вместо вычисляемого смещения, можно было писать имена
переменных?
С уважением s19992.
 |
Вопрос задал: s19992 (статус: Посетитель)
Вопрос отправлен: 28 августа 2011, 21:07
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|