Показать сообщение отдельно

  #7  
Старый 02.03.2009, 07:09
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Цитата:
Сообщение от cremator (c)  
а (cpuid функции с 0x80000002 по 0x80000004) что значат? и как их заюзать? лучше на дельфи

Чтобы получить строку бренд-индекс, надо последовательно вызывать команду cpuid со значениями в eax = 0x80000002 , 0x80000003,0x80000004 . В результате в регистрах eax, ebx, ecx, edx именно в таком порядке вы будете получать по 16 байт [4x4] строки. И того, для хранения самого индекса вам потребуется строка длиной 48 ascii символов и завершающий 0 и того 49 символов (как видно это как раз максимально возможное значение).

В сорцах моего amd-cpu-info эта функция есть

Код:
VOID WINAPI GetBrandStr(PCHAR szBrand)
{
 for(DWORD arg = 0x80000002,i=0;arg<=0x80000004;arg++,i+=15)
 {
                _asm
                {
                        mov edi,szBrand
                
                        mov eax,arg
                        
                        cpuid
                        
                        mov esi,i
                        
                        mov dword ptr [edi+esi],eax
                        
                        mov dword ptr [edi+3+esi],ebx
                    
                        mov dword ptr [edi+7+esi],ecx
                        
                        mov dword ptr [edi+11+esi],edx
                }


                
 }
}
Пример вызова


Код:
CHAR cBrandInd[49];

RtlZeroMemory(&cBrandInd,49);

GetBrandStr(cBrandInd);

MessageBoxA(0,cBrandInd,"Processor",0);
Как пример

"AMDAthlon(tm) 64 X Dual Core Processr 5200+"

2ТС как мне кажется, это довольно простой способ - все, что связано с cpuid. У этой команды еще имеется большое количество различных функций с помощью которых можно узнать возможности конкретного процессора. Правда, если не использовать с другими параметрами оборорудования, то не особо случайно получиться, да вы и сами понимаете

желаю удачи

Последний раз редактировалось 0x0c0de; 02.03.2009 в 09:09..
 
Ответить с цитированием