更新时间:2023-12-02 15:31:46
{$IFDEF MSWINDOWS}
function currentStackUsage: NativeUInt;
//NB: Win32 uses FS, Win64 uses GS as base for Thread Information Block.
asm
{$IFDEF WIN32}
mov eax, fs:[4] // TIB: base of the stack
sub eax, esp // compute difference in EAX (=Result)
{$ENDIF}
{$IFDEF WIN64}
mov rax, gs:[8] // TIB: base of the stack
sub rax, rsp // compute difference in RAX (=Result)
{$ENDIF}
{$ENDIF}
end;