gpt4 book ai didi

.net - 如何设置和恢复 FPU CTRL 寄存器?

转载 作者:行者123 更新时间:2023-12-03 15:06:01 25 4
gpt4 key购买 nike

我可以用这个重置 FPU 的 CTRL 寄存器:

http://support.microsoft.com/kb/326219

但是我怎样才能保存当前寄存器并在以后恢复它们呢?

它来自.net代码..

我正在做的事情是从 Delphi 调用 .net dll 作为 COM 模块。检查 delphi 中的 Ctrl 寄存器会产生一个值,使用 .net 代码中的 controlfp 检查会产生另一个值。我需要的是,本质上是这样做:

_controlfp(_CW_DEFAULT, 0xfffff); 

所以我在.net代码中的浮点计算不会崩溃,但我想在返回时恢复Ctrl寄存器。

也许我不知道?也许德尔福会在需要时重置它们?我在博客上讨论了这个问题here .

最佳答案

uses
SysUtils;

var
SavedCW: Word;
begin
SavedCW := Get8087CW;
try
Set8087CW($027f);
// Call .NET code here
finally
Set8087CW(SavedCW);
end;
end;

关于.net - 如何设置和恢复 FPU CTRL 寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191368/

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