# 收集处理器信息
#cpuid.s Sample program to extract the processor Vendor ID
.section .data
output:
.ascii "The processor Vendor ID is 'xxxxxxxxxxxxxxxx'\n"
.section .text
.globl _start
_start:
movl $0, %eax # eax=0, 表示厂商ID
cpuid
movl $output, %edi
movl %ebx, 28(%edi) # 替换 output 第28个字符位置
movl %edx, 32(%edi)
movl %ecx, 36(%edi)
movl $4, %eax # 系统调用值 4 --> write
movl $1, %ebx # 要写入的文件描述符, 1 --> STDOUT
movl $output, %ecx # 字符串的开头
movl $42, %edx # 字符串的长度 write(STDOUT, output, 42)
int $0x80
movl $1, %eax # 1 --> exit
movl $0, %ebx # exit(1)
int $0x80
# as -o cpuid.o cpuid.s
# ld -o cpuid cpuid.o
# EAX值
0:厂商ID
1:类型、系列
2:缓存配置
3:序列号
4:线程数量、核心数量及物理属性
5:监视信息
80000000:扩展厂商ID
......