Вопрос: Определяю процедуру Код (Text): LoadFile proc lpFileName:dword, dwSize:dword Вызываю процедуру Код (Text): Main proc uses ebx edi esi LOCAL lpBuffer:dword LOCAL dwSize:dword invoke LoadFile, addr szFileName, addr dwSize ( здесь ) ... передаю адрес локальной переменной dwSize и не знаю, как в теле процедуру записать по этому адресу значение. Подскажите Заранее спасибо.
lea edi, dwSize ; загрузить адрес локальной переменной mov dword ptr [edi], ... ; записать по нему то что нужно
; Код (Text): mov ebx, dwFileSize; здесь лежит то что я хочу записать в выходной параметр lea edi, dwSize mov dword ptr [edi], ebx Не выходит...
А нет - торможу Вариант выше запишет в тот dwSize что в праметрах функции а исходная задача решается так: Код (Text): LoadFile proc lpFileName:dword, dwSize:dword mov eax, lpFileName ; читается адрес как значение переменной mov [eax], результат ; сохранить результат по этому адресу mov eax, dwSize mov [eax], результат ... Main proc uses ebx edi esi LOCAL lpBuffer:dword LOCAL dwSize:dword lea eax, szFileName lea ecx, dwSize invoke LoadFile, eax, ecx ; адреса локальных переменных грузятся через lea и передаются с помощью регистров