интересуюсь строго для того, что бы удовлетворитца морально и сделать по своему есть буфер lBuffer научите обращатца в масме к тому же буферу как к конкретным структурам(например win32_find_data)
Как-то таг? =) mov edi, [eax].OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress add edi, ebx assume edi:ptr IMAGE_EXPORT_DIRECTORY mov ecx, [edi].NumberOfFunctions
уже красивее) а можно без регистра? че-нить типо: Код (Text): mov edi, [WIN32_FIND_DATA].OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress
Clerk mov win32_find_data.filename[lbuffer],eax - не прет, пробовал, еще до того, как запостить. lbuffer:win32_find_data, mov [lbuffer].filename,eax - этого вообще не понимаю. Неговоря уже о компиляторе) Asterix читал когда-то давным давно. и то не дочитал:-[
warsem Для начала поймите что вам нужно. mov win32_find_data.filename[lbuffer],eax - это лучший вариант по читабельности, скобки указывают адрес так принято.
курите справочник прилагаемый к масму6.11 там ясно написано что за такие фокусы отвечает директива PTR Код (Text): yobuffer BYTE 10 DUP (0) ... mov (REQSTRUC PTR yobuffer).REQYOFIELD,EAX или как вам подсказывали ранее загужаете адрес массива в регистр ассумите его к данной структуре и вперед юзать через регистр короче - "читайте прессу"
логика такой записи сомнительна - берется относительное от начала структуры смещение и к нему добавляется адрес буфера - естественее для понимания наоборот по опыту такого рода записи чувствительны к ключам строгости ассемблирования - убрал режим обратной совместимости и вагон ошибок
посмотри как смотрица в бинарнике - увидишь что с регистром лучше без регистра в бинарнике (под отладчиком) иногда очень тяжко определить что за поле
а чем лучше mov eax,[XXXXXXXXh] чем lea esi,[YYYYYYYYh] \ mov eax,[esi+ZZZZZZZZh]? или второй вариант в плане оптимизации ловчее?
типа того ну во первых у mov eax,[esi+ZZZZZZZZh] можно почитать и понять что за поле - когда на пропалую сложнее во вторых имхо наверно существует несколько инструкций mov eax,[esi+ZZZZZZZZh] в зависимости от длины ZZZZZZZZh хотя в этом я не уверен в третьих повторное использование - для массива из буферов можно пользоваться одной функцией а так для каждого элемента бушь писать свою