· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Серийный номер проца

Посл.отвђт Сообщенiе


Дата: Июл 7, 2003 18:45:39

Как програмно определить серийный номер процессора и вывести его на экран? Помогите срочно надо.


Дата: Июл 7, 2003 22:05:05

cpuid вроде ? С разными eax...


Дата: Июл 8, 2003 12:41:51

Ага. С троечкой.

eax=3
cpuid
ecx:edx = ps#

Подробности на http://www.intel.com/technology/itj/q21999/articles/art_3.htm


Дата: Июл 15, 2003 16:49:05

А как работать с Кэшем???


Дата: Июл 15, 2003 17:02:24

всмысле ?
процессорным ?
Тогда тебе надо использовать sse, sse2...


Дата: Июл 15, 2003 17:22:46

Я знаю инструкции и регистры xmm!! есть практика написания программ!! А как манипулировать кэшем!!! Чтобы сделать еще быстрее свои программки!!! ???


Дата: Июл 27, 2003 23:22:09

И всё-же как узнать номер процессора? А для AMD?!
Кто-нибудь может привести кусок кода...


Дата: Июл 28, 2003 01:42:16 · Поправил: Four-F

Для интела вроде так:
.586
.model flat, stdcall
option casemap:none

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::
;                                  I N C L U D E   F I L E S                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::
;                                     C O N S T A N T S                                             
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::

.const
szFmt	db "%04X-%04X-%04X-%04X-%04X-%04X", 0
szCap	db "Processor Serial Number", 0
szErr	db "Processor Serial Number feature is not available", 0

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::
;                              U N I N I T I A L I Z E D  D A T A                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::

.data?
buffer	db 128 dup(?)

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::
;                                       C O D E                                                     
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::

.code
start:

	mov eax, 1
	cpuid
	and edx, 0100000000000000000y
	.if !ZERO?
		; Processor Serial Number feature is available

		pushad

		mov eax, 1
		cpuid				; get Processor Signature
		push eax
	
		mov eax, 3
		cpuid

		pop eax
		mov ebx, eax
		shr ebx, 16
		and eax, 0FFFFh

		mov esi, edx
		shr esi, 16
		and edx, 0FFFFh

		mov edi, ecx
		shr edi, 16
		and ecx, 0FFFFh
		
		invoke wsprintf, addr buffer, addr szFmt, ebx, eax, esi, edx, edi, ecx
		invoke MessageBox, NULL, addr buffer, addr szCap, MB_OK

		popad

	.else
		invoke MessageBox, NULL, addr szErr, NULL, MB_OK
	.endif

	invoke ExitProcess, 0

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::
;                                                                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  ::::::::::::::::::::::::::::::

end start


Для АМД хз.
Тут CPU detection code постили доки по cpuid для интела и амд. Результаты сообчи.


Дата: Июл 28, 2003 01:50:43 · Поправил: Asterix

Four-F

Спасибо. Мне как раз по AMD нужно, т.к. у меня Athlon.
Я и твой код попробую прогнать, вдруг сработает :-)

Попробовал:

Работает!?
Мне нужно было сгенерить лицензию, для этого нужен был
"Number of CPUs", дык вот скомпилив твой исходник и получив
номер вида 0000-0642-0000-0000-0000-0000, я ввёл гы :-) в
keygen только 0642, и всё нормально сгенерилось, вот я и
думаю, это что действительно такой серийный номер моего
процессора или прога проверяющая лицензию работает по тому
же алгоритму и соответственно получает тот же номер, т.е.
она скорее всего рассчитана на intel???


Дата: Июл 28, 2003 02:57:09 · Поправил: Asterix

Всё правильно, CPUiD by Chris Dragan, показывает тот же номер,
а там точно поддерживается мой Athlon.

P.S. по твоей ссылке в той ветке про CPUiD приаттачены два PDF'а,
от intel и AMD, вот там исчерпывающе изложено всё, с исходным кодом
разумеется, но меня твой код вполне устроил, ещё раз спасибо.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.050