如何在 Delphi 32 中探测计算机是否支持 SSE2?
C++ 方法是此处(在 Windows 下)。
相同的答案,但在 Linux 下使用 GCC。
据我了解,相关asm代码摘录:
mov eax, 1
cpuid
mov features, edx
我对BASM不太满意。
我的问题:
我需要按如下方式完成测试,
function IsSSE2: Boolean;
begin
try
Result := False;
//
// Some BASM code here
//
except
Result := False;
end;
end;
请帮助我。
The c++ way to do it is here (under Windows).
The same answer but under Linux using GCC.
Excerpt of the relevant asm code as I understand it:
mov eax, 1
cpuid
mov features, edx
I'm not very comfortable at BASM.
My Question:
I need to wrap the test as follows
function IsSSE2: Boolean;
begin
try
Result := False;
//
// Some BASM code here
//
except
Result := False;
end;
end;
Please help me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下是 graphics32 库用于检测处理器功能的代码:
您可以调用
HasInstructionSet(ciSSE2)
来发现您需要什么。Here is the code used by the graphics32 library to detect processor features:
You can call
HasInstructionSet(ciSSE2)
to discover what you need.您也可以在没有汇编器的情况下做到这一点。但仅适用于 Windows XP 及更高版本。
You can do that without assembler as well. Works with Windows XP and newer only though.
我认为这样做可以做到:
I think that this does it: