Delphi lagert es nur einmal aus und es wird dann vorm RET auf EAX kopiert.
Result wird in soeinem Fall einfach wie eine lokale Variable behandelt und erst zum Schluß als "Result" gesetzt.
Es sollte also nicht unbedingt extreme Einbusen geben.
Code:
function Test: Integer;
begin
Result := 123;
asm mov eax, 789; end;
end;
mov edx,$0000007b // Result := 123;
mov eax,$00000315 //
asm mov eax, 789; end;
mov eax,edx // end;
ret