Як дізнатися серійний номер процесора

Як дізнатися серійний номер процесора?

Люди підкажіть як дізнатися серійний номер ЦП з під Делфі!

CPUID (див. Док-цію Intel на їх сайті)

> Snake7 (14.07.03 18:35)
> Як дізнатися серійний номер ЦП з під Делфі!

Запитати у самого процесора: У asm вставці виконайте інструкцію CPUID (опкод 0Fh 0Ah). Не забудьте перевірити чи підтримує процесор цю команду, спробуйте встановити прапор ID в 1 (біт 21 в регістрі EFLAGS) - якщо це виходить, значить, команда CPUID підтримується. У EAX до виклику CPUID має бути 03h, в регістрах ECX, EDX після виконання інструкції буде серійний номер процесора, але наскільки я знаю (точно не впевнений), серійний номер є тільки на процесорах PENTIUM III. Исходника у мене природно немає, писАть - бажання теж.

CPUID це не серійний номер процесора, а ідентифікаційний номер моделі.

щось я не бачу в мануалі у Інтелу мікрологікі для initial EAX = 3

може, мануал відображає тільки сумісний мікрокод всього сімейства Пнів.

Operation
CASE (EAX) OF
EAX = 0:
EAX ¬ highest input value understood by CPUID; (* 2 for Pentium ® Pro processor *)
EBX ¬ Vendor identification string;
EDX ¬ Vendor identification string;
ECX ¬ Vendor identification string;
BREAK;
EAX = 1:
EAX [3: 0] ¬ Stepping ID;
EAX [7: 4] ¬ Model;
EAX [11: 8] ¬ Family;
EAX [13:12] ¬ Processor type;
EAX [31:12] ¬ Reserved;
EBX ¬ Reserved; ECX ¬ Reserved;
EDX ¬ Feature flags; (* Refer to Figure 3-27 *)
BREAK;
EAX = 2:
EAX ¬ Cache and TLB information;
EBX ¬ Cache and TLB information;
ECX ¬ Cache and TLB information;
EDX ¬ Cache and TLB information;
BREAK;
DEFAULT: (* EAX> highest value recognized by CPUID *)
EAX ¬ reserved, undefined;
EBX ¬ reserved, undefined;
ECX ¬ reserved, undefined;
EDX ¬ reserved, undefined;
BREAK;
ESAC;

Що є - ідентифікаційний номер моделі?

Ось спеціально подивився:

А до чого тут це? Яке це має відношення до серійного номеру процесора?

Var Pentium: Boolean;
Begin
Asm
mov al, 1
mov byte ptr @, 90h
@: Dec ax
( "You need at least iPentium processor!" # 7)

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.

NightAngel # 032; (15.07.03 19:09)
Я не звернув внимение на ECX / EDX. раніше CPUID не мав інформації про серійний номер процесора.

дивно)
значить. мануал у мене не найсвіжіший чи що.

ось цей (начебто той же самий, судячи з назви і року):

Дякуємо.
Мабуть, прогавив я момент поновлення)

Схожі статті