Системное программное обеспечение. Особенности программирования 32-разрядных процессоров. Рощин А.В. - 86 стр.

UptoLike

Составители: 

86
count_2=((unsigned __int64)hi)*(((unsigned
__int64)1)<<32)+(unsigned __int64)lo;
frequency_proc=(int)(count_2-count_1)/(500000); //
Частота в МГц
}
catch(...) // Реакция на системное исключение [не может
выполниться
// функция Fasm()]
{ AnsiString f1,f2;
f1=”Не тот тип процессора”;
f2=”Системные требования”;
Application->MessageBox(f1.c_str(),f2.c_str(),MB_OK);
Application->Terminate();
}
// Системного исключения не было, вычисляем частоту процессора
if(frequency_proc<500)
{ AnsiString a,f2;
f2=”Системные требования”;
a=”Частота процессора ЭВМ менее 500 Мгц”+
+AnsiString((int)frequency_proc)+ ”Мгц)\n”;
Application->MessageBox(a.c_str(),f2.c_str(),MB_OK);
}
Ассемблерная функция
//---- «Fasm» -----------------------------------------
void fasm(unsigned int *plo,unsigned int *phi)
{ unsigned int lo,hi;
asm
{
rdtsc
mov lo,eax
mov hi,edx
}
*plo=lo;
*phi=hi;
}
3.4 Определение объема оперативной памяти
Для получения информации о доступной оперативной памяти можно
использовать функцию API Win32 GlobalMemoryStatus. Она возвращает
информацию, как о физической, так и о виртуальной памяти.
VOID GlobalMemoryStatus(
      count_2=((unsigned                __int64)hi)*(((unsigned
__int64)1)<<32)+(unsigned __int64)lo;
      frequency_proc=(int)(count_2-count_1)/(500000);        //
Частота в МГц
    }
  catch(...) // Реакция на системное исключение [не может
выполниться
             // функция Fasm()]
    { AnsiString f1,f2;
      f1=”Не тот тип процессора”;
      f2=”Системные требования”;
      Application->MessageBox(f1.c_str(),f2.c_str(),MB_OK);

         Application->Terminate();
    }


 // Системного исключения не было, вычисляем частоту процессора
  if(frequency_proc<500)
    { AnsiString a,f2;
      f2=”Системные требования”;
      a=”Частота процессора ЭВМ менее 500 Мгц”+
        +AnsiString((int)frequency_proc)+ ”Мгц)\n”;
      Application->MessageBox(a.c_str(),f2.c_str(),MB_OK);
    }


     Ассемблерная функция
//---- «Fasm» -----------------------------------------
void fasm(unsigned int *plo,unsigned int *phi)
{ unsigned int lo,hi;
      asm
        {
          rdtsc
          mov lo,eax
          mov hi,edx
        }
  *plo=lo;
  *phi=hi;
}


        3.4 Определение объема оперативной памяти
        Для получения информации о доступной оперативной памяти можно
использовать функцию API Win32 GlobalMemoryStatus. Она возвращает
информацию, как о физической, так и о виртуальной памяти.
VOID GlobalMemoryStatus(



                                     86