wird direkt durch den Compiler ausgerechnet und dann
direkt an Y übergeben, als Konstante:
Delphi-Quellcode:
Y := Round(1E200);
// oder
Y := 123 * 1E200;
wird erst zur Laufzeit ausgerechnet:
Delphi-Quellcode:
X := 1E200;
Y := Round(X);
// oder
Y := 123 * X;
Code:
Unit9.pas.29: Y := Round(1E200);
004B32BC 33C0 xor eax,eax
004B32BE 8945E0 mov [ebp-$20],eax
004B32C1 C745E400000080 mov [ebp-$1c],$80000000
004B32C8 66C745E83EC0 mov word ptr [ebp-$18],$c03e
Unit9.pas.32: X := 1E200;
004B32E9 C745F06DD112BB mov [ebp-$10],$bb12d16d
004B32F0 C745F4BEC638A7 mov [ebp-$0c],$a738c6be
004B32F7 66C745F89742 mov word ptr [ebp-$08],$4297
Unit9.pas.33: Y := Round(X);
004B32FD DB6DF0 fld tbyte ptr [ebp-$10]
004B3300 E8E312F5FF call @ROUND
004B3305 8945D4 mov [ebp-$2c],eax
004B3308 8955D8 mov [ebp-$28],edx
004B330B DF6DD4 fild qword ptr [ebp-$2c]
004B330E DB7DE0 fstp tbyte ptr [ebp-$20]
004B3311 9B wait