| 
| 
 | Вопрос # 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.
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |