cpuid.asm
comment *
ml64 /c /Fl cpuid.asm
link /subsystem:console /entry:start cpuid
*
 
includelib kernel32
 
extern ExitProcess:proc
extern GetStdHandle:proc
extern lstrlenA:proc
extern WriteConsoleA:proc
 
STD_OUTPUT_HANDLE equ -11
 
.data?
hstdout	dq	?
buf	db	48+1 dup (?)
 
.code
 
start proc
	sub	rsp, 28h
	mov	rcx, STD_OUTPUT_HANDLE
	call	GetStdHandle
	mov	hstdout, rax
 
	mov	r9, offset buf
	mov	r8d, 80000002h
@@:
	mov	eax, r8d
	cpuid
	mov	[r9   ], eax
	mov	[r9+ 4], ebx
	mov	[r9+ 8], ecx
	mov	[r9+12], edx
	add	r9, 16
	inc	r8d
	cmp	r8d, 80000005h
	jne	@b
 
	lea	rcx, offset buf
	call	lstrlenA
 
	mov	rcx, hstdout
	lea	rdx, offset buf
	mov	r8d, eax
	xor	r9d, r9d
	mov	qword ptr [rsp+20h], 0
	call	WriteConsoleA
 
	mov	rcx, 0
	call	ExitProcess
start endp
 
end
 

表示例
Intel(R) Celeron(R) CPU N3350 @ 1.10GHz
最終更新:2021年10月11日 17:26