gpt4 book ai didi

delphi - 在程序集中获取ThreadID

转载 作者:行者123 更新时间:2023-12-03 14:41:50 25 4
gpt4 key购买 nike

我阅读了FastMM4的源代码,并注意到这个有趣的功能

function GetThreadID: Cardinal;
{$ifdef 32Bit}
asm
mov eax, FS:[$24]
end;
{$else}
begin
Result := GetCurrentThreadID;
end;
{$endif}

我已经测试过它,并且它有效,所以我的问题是任何解释它为什么有效?

最佳答案

x86 寄存器 FS 指向 Thread Information Block在Windows中。 TIB 中地址 FS+0x24 处的值包含当前线程的 ID。通过将值移至用于传递函数返回值的 eax,GetThreadID 返回当前线程 ID。

关于delphi - 在程序集中获取ThreadID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com