Я разобрал объектный файл (скорее всего, сгенерированный с использованием компилятора Visual С++) с помощью DumpBin
и увидел следующий фрагмент кода:
... ...
mov dword ptr [ebp-4],eax // Why save EAX?
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
mov eax,dword ptr [ebp-4] // Why restore EAX? Did it change at all?
call <function>
... ...
Может кто-нибудь объяснить, почему регистр EAX сохраняется и восстанавливается в этих четырех инструкциях push
?