Всем привет в статье (http://www.wasm.ru/article.php?article=1022004) есть такой абзац скажите пожалуйста а был ли прецедент что бы изменился регистр EBX в WINAPI функции ? потому что по наблюдениям за cl.exe он всегда сохраняет регистр EBX в паре с ESI и EDI и можно ли расчитывать на то что EBX изменен не будет ?
7mm как-то трудно представить что ecx и edx в stdcall не сохраняются если используются. другое дело fastcall - где первые два параметра передаются через ECX, EDX (Visual C++). eax - да, согласен, никогда не сохраняется.
63F45EF45RB65R6VR в Сам себе Iczelion до вызова RegisterClassEx и CreateWindowEx обнуляю EBX и далее использую нулевое значение в WndProc, но стоило попробовать для тех же целей использовать ESI или EDI и уже в WndProc обнаружил, что там ненулевое значение, так по крайней мере в Win XP
Charlief На сколько помню, %ecx будет сохраняться для __thiscall. Если используется __fastcall, то передача параметров через %ecx, %edx. Что из низ сохраняется не помню. Вопрос был про WINAPI. Это __stdcall, там чётко определено для x86_32: сохраняются %ebx, %esi, %edi, %ebp. UPD: лажу написал, для __stdcall определено только, что параметры через стек передаются.
Но вот пруф про %ebx, %esi, %edi, %ebp: http://msdn.microsoft.com/en-us/library/984x0h58(v=vs.80).aspx