关于一段C++程序的汇编代码的有关问题

关于一段C++程序的汇编代码的问题C/C++ codedouble _nMaxSpeedG00 GetMaxHardwareSpeedG00()0057883Fmo

关于一段C++程序的汇编代码的问题

C/C++ code
    double _nMaxSpeedG00 = GetMaxHardwareSpeedG00();0057883F  mov         ecx,dword ptr [this] 00578842  call        CController::GetMaxHardwareSpeedG00 (56795Bh) 00578847  fstp        qword ptr [_nMaxSpeedG00]     __TEST_GRAT3(m_nSpeedG00, _nMaxSpeedG00, CMP_HARD_MAXSPEED);0057884A  movzx       ebx,byte ptr [_bIsLegal] 0057884E  push        1    00578850  lea         eax,[_nMaxSpeedG00] 00578853  push        eax  00578854  mov         ecx,dword ptr [this] 00578857  add         ecx,0BF28h 0057885D  push        ecx  0057885E  mov         ecx,dword ptr [this] 00578861  call        CController::_TestGreat<double,double> (568108h) 


这两句程序的汇编代码中_nMaxSpeedG00被定义成了double类型的,我记得应该是使用的IEEE754的双精度保存的。符号位,阶数
和尾数分别为1,11,52。
上面的汇编代码中
00578850 lea eax,[_nMaxSpeedG00]
应该是讲一个双精度浮点数赋值给了EAX32位寄存器。这个是如何完成的啊,不会丢失位数么?

[解决办法]
lea eax,[_nMaxSpeedG00]
这个是将地址放进去了,而不是将其本身的值