собственно, есть примерно такой код: Код (Text): PUBLIC dwSize .CODE Proc PROC xor eax, eax retn Proc ENDP dwSize DD SIZE SIZE equ $-Proc END переменая dwSize доступна с сишном коде, всё пучком: Код (Text): extern "C" DWORD dwSize; а как сделать так, чтобы: Код (Text): PUBLIC SIZE .CODE Proc PROC xor eax, eax retn Proc ENDP SIZE equ $-Proc END можно было из сишного кода обращаться к публичной метке SIZE?
собственно, забыл сказать что если к сайзу обращаться в таком виде, как я описал - то генерируется код mov eax, large ds:3
Дык это ж не метка??? это ж константа, равная длине PROC, или я ни шута не понимаю... Длина PROC - 3 байта. У тебя все прекрасно получилось ))
я наверно не правильно пояснил что мне надо... мне надо чтобы я в сишном кодесе смог написать DWORD dwAsmCodeSize = SIZE; и туда занеслось 3. так как я написал - туда заносится что-то с АДРЕСА 3 - эксепшн. вот. я гдето ошибся... вопрос - где?
Можно сделать так, как вариант: Код (Text): PUBLIC end_shell:DWORD PUBLIC bigin_shell:DWORD proc begin_shell ..... endp begin_shell end_shell: и потом: Код (Text): extern "C" { DWORD begin_shell; DWORD end_shell; } DWORD dwAsmCodeSize = end_shell - begin_shell;