我有一个函数是实用程序库的一部分,它是在C ++ Builder中编译和运行时创建的失败的单元测试。问题功能如下。在运行单元测试时,程序似乎卡在fldcw controlWord
行,并且无法移动。它似乎在等待永远不会发生的事情。有什么想法吗?
void FPUControl::setControlWord(short controlWord)
{
// set the control word - note this assembly construct works on
// Visual C++ and Borland C++, but may need to be changed for other
// compilers
#ifndef __GNUC__
__asm
{
fldcw controlWord
}
#else
asm volatile
(
"fldcw %[controlWord]"
:
: [controlWord] "m" (controlWord)
);
#endif
}
答案 0 :(得分:1)
您的代码适用于我(使用C ++ Builder 2007验证)。
setControlWord(Default8087CW);
其中Default8087CW
是4978。
答案 1 :(得分:0)
@Zach:代码也在C ++ Builder XE下编译和运行。为了记录,我没有把它作为课程的一部分。