А как правильно сделать assume в fasm'e? К примеру надо так: Код (Text): assume edi:ptr IMAGE_DOS_HEADER add edi,[edi].e_lfanew На fasme это будет так? Код (Text): virtual at edi curlp IMAGE_DOS_HEADER end virtual add edi,[curlp.e_lfanew] Как то громоздко получается. Можно конечно макрос написать :/. И как сделать, чтобы можно было все время объявлять метки с одинаковыми именами. Например создать еще одну с именем curlp. А то он ругается, что symbol already defined. Как сделать чтобы он ее забыл ?
метки с одинаковыми именами Мля, ну: Код (Text): mov edi, CHT0_TE_NADO А если в разных процедурах, то ставь "." перед именем.
Что мешает макрос использовать? будет одной строчкой. Например такой: Код (Text): macro assign reg, struct { virtual at reg .#reg struct end virtual } ; assign edi, IMAGE_DOS_HEADER add edi, [.edi.e_lfanew] PS: when u assume, you add an ass to u & me ))
нафига этот assume, imho лучше юзать конструкцию вроде такой: Код (Text): mov edi,[lParam] mov eax,[edi+PAINTSTRUCT.hDc]
macro assign reg, struct { virtual at reg local ..foo reg equ ..foo reg struct restore reg end virtual } ; assign edi, IMAGE_DOS_HEADER add edi, [edi.e_lfanew]