码迷,mamicode.com
首页 > 其他好文 > 详细

Set8087CW

时间:2015-07-13 22:17:19      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

Set8087CW
This example accesses the Floating Point Unit (FPU) control register. Try turning floating point exceptions off and on and dividing a number by zero to test it.
Word Saved8087CW;
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Edit3->Text = FloatToStr(StrToFloat(Edit1->Text) / StrToFloat(Edit2->Text));
}
 
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
  if (RadioGroup1->Items->Strings[RadioGroup1->ItemIndex] == "FPU Exceptions")
    System::Set8087CW(Saved8087CW);
  if (RadioGroup1->Items->Strings[RadioGroup1->ItemIndex] == "No FPU Exceptions")
    System::Set8087CW(0x133f); // Disable all fpu exceptions.
}
 
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  RadioGroup1->Items->Add("No FPU Exceptions");
  RadioGroup1->Items->Add("FPU Exceptions");
  RadioGroup1->ItemIndex = 2;
  Saved8087CW = Default8087CW;  // Save this, because Set8087CW changes it.
}
 
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  System::Set8087CW(Saved8087CW); // Default value (with exceptions) is 0x1372.
}

 

Set8087CW

标签:

原文地址:http://www.cnblogs.com/cb168/p/4644013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!