function sar32(value, shift: longint): longint;
asm
mov ecx, edx
sar eax, cl
end;
function sar32(value: Int64; shift: longint): longint;
function sar64(value: Int64; shift: LongInt): LongInt;
asm
mov ecx, eax
mov eax, dword ptr [value]
mov edx, dword ptr [value+4]
shrd eax, edx, cl
end;
как изменить эту функцию, чтобы она преобразовывала результат в Integer, а не LongInt
function sar32(value: Int64; shift: longint): longint;
function sar32(value: Int64; shift: longint): longint;
asm
shrd eax, edx, cl
end;