Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Компьютерное железо
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2011, 15:17   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос Узнать серийный номер процессора?

Как написать код с помощью которого можно узнать серийный номер процессора???
VintProg вне форума Ответить с цитированием
Старый 14.09.2011, 06:01   #2
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Нашел код, но он не работает...

Код:
      {$G+}
       
      {$DEFINE ManyHyphens}
       
      {$S-}
      Procedure StoreHexNum; assembler; { For call from GetCPUSerialNumber function only! }
      { EAX = Number }
      Asm
              push    cx
      db 66h; push    dx           { push edx }
      db 66h; xchg    dx,ax        { xchg edx,eax }
              mov     cl,32-4
      @NextDigit:
      db 66h; mov     ax,dx        { mov eax,edx }
      db 66h; shr     ax,cl        { shr eax,cl }
              and     al,0Fh
              add     al,'0'
              cmp     al,'9'
              jbe     @@09
              add     al,('A'-('9'+1))
      @@09:   stosb
              sub     cl,4
              jnc     @NextDigit
      db 66h; pop     dx           { pop edx }
              pop     cx
      End;
       
      {$S+}
      Function GetCPUSerialNumber: String; assembler;
      Asm
              cld
              les     di,@Result
      {$IFDEF ManyHyphens}
              mov     al,12+8*3+3
      {$ELSE}
              mov     al,12+8*3+1
      {$ENDIF}
              stosb
      db 66h; xor     ax,ax        { xor eax,eax }
              db 0Fh,0A2h          { cpuid }
      db 66h; xchg    ax,bx        { xchg eax,ebx }
      db 66h; stosw                { stosd }
      db 66h; xchg    ax,dx        { xchg eax,edx }
      db 66h; stosw                { stosd }
      db 66h; xchg    ax,cx        { xchg eax,ecx }
      db 66h; stosw                { stosd }
      {$IFDEF ManyHyphens}
              mov     al,' '
              stosb
      {$ENDIF}
      db 66h; xor     ax,ax        { xor eax,eax }
              inc     ax
              db 0Fh,0A2h          { cpuid }
              call    StoreHexNum
              mov     al,'-'
              stosb
      db 66h; xchg    ax,dx        { xchg eax,edx }
      db 66h; xor     dx,dx        { xor edx,edx }
      db 66h; xor     cx,cx        { xor ecx,ecx }
      db 66h; shr     ax,18+1      { shr eax,18+1 }
              jnc     @NoSerialNumber
              mov     ax,3
              db 0Fh,0A2h          { cpuid }
      @NoSerialNumber:
      db 66h; xchg    ax,dx        { xchg eax,edx }
              call    StoreHexNum
      {$IFDEF ManyHyphens}
              mov     al,'-'
              stosb
      {$ENDIF}
      db 66h; xchg    ax,cx        { xchg eax,ecx }
              call    StoreHexNum
      End;
       
      Var Pentium: Boolean;
      Begin
          Asm
             mov al,1
             mov byte ptr @,90h
           @:dec ax
             mov Pentium,al
          End;
          If not Pentium then WriteLn('You need at least iPentium processor!'#7)
          else WriteLn('Your processor serial number is "', GetCPUSerialNumber, '"')
      End.
VintProg вне форума Ответить с цитированием
Старый 15.09.2011, 18:13   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,817
По умолчанию

вчера этим вот занимался. держите архив с кодом и программой. только напишите: у Вас работает или нет?
Вложения
Тип файла: rar SerialProcessor.rar (19.9 Кб, 377 просмотров)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 15.09.2011, 18:31   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

У меня работает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.09.2011, 18:42   #5
WildHunter
Ископаемый админ
Форумчанин
 
Аватар для WildHunter
 
Регистрация: 08.07.2010
Сообщений: 992
По умолчанию

Не похоже на серийный номер процессора. Проверил на нескольких машинах, везде номера подозрительно короткие, например:
Processor ID: GenuineIntel
Serial Number: 00010667A0000000000000000
То-же самое в Everest называется "Версия CPUID", что никак не серийник процессора.

Вообще, насколько я знаю, возможность получения программой серийного номера процессора уже давно блокирована. Только некоторые процессоры выдают серийный номер, и только если включена такая опция в BIOS.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
WildHunter вне форума Ответить с цитированием
Старый 15.09.2011, 18:46   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,817
По умолчанию

Исходник внутри. Тогда что же это за длинный ряд чисел? Количество элементов в схемах процессора?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 15.09.2011, 18:50   #7
WildHunter
Ископаемый админ
Форумчанин
 
Аватар для WildHunter
 
Регистрация: 08.07.2010
Сообщений: 992
По умолчанию

Читаем здесь. Если упрощать, то кодовое наименование набора инструкций, поддерживаемых процессором.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
WildHunter вне форума Ответить с цитированием
Старый 15.09.2011, 19:08   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

то что вы выводитие как Processor ID это есть Basic CPUID Information не более.
а Serial Number это Version Information: Type, Family, Model, and Stepping ID а остальное мусор, если проц не пень третий:
Цитата:
ECX:Bits 00-31 of 96 bit processor serial number. (Available in Pentium III
processor only; otherwise, the value in this register is reserved.)
EDX:Bits 32-63 of 96 bit processor serial number. (Available in Pentium III
processor only; otherwise, the value in this register is reserved.)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.09.2011, 19:55   #9
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,817
По умолчанию

Ну, значит, "копал лопатой траншею не в том направлении ". Ведь было же подозрение, что что-то не так - уж всё больно легко получилось, и в инете куча статей, что это серийник все ищут и не могут получить программным путём...
я честно пытался как мог...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 15.09.2011, 20:32   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ошиблись бывает.

вы умеете признавать ошибки, это хорошо
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать оригинальный серийный номер жестокого диска! VintProg Свободное общение 14 08.09.2011 08:54
Серийный номер HDD ?! $T@LKER Общие вопросы Delphi 32 26.02.2011 10:55
по букве тома определить физический серийный номер накопителя, а не номер тома @лександр Помощь студентам 6 23.09.2010 15:05
Серийный номер флешки best island Общие вопросы .NET 0 19.07.2010 01:47
Серийный номер HDD Mikola-TEAM Win Api 1 25.05.2010 19:38