下面的代码是摘录自网络。
- #cpuid.s Sample program to extract the processor Vendor ID
-
-
.section .data
- output:
- .ascii "The processor Vendor ID is 'xxxxxxxxxxxx'\n"
-
-
.section .text
-
.global _start
-
-
_start:
-
movl $0, %eax
-
cpuid
-
-
movl $output, %edi
-
movl %ebx, 28(%edi) #将cpuid指令的结果保存到$output的相应位置中
-
movl %edx, 32(%edi)
-
movl %ecx, 36(%edi)
-
movl $4, %eax # write的系统调用号
-
movl $1, %ebx # stdout = 1, write的第1个参数
-
movl $output, %ecx # write的第2个参数,字符串的地址
-
movl $42, %edx # write的第3个参数,即输出字符串的长度
-
int $0x80
-
-
movl $1, %eax # exit的系统调用号
-
movl $0, %ebx # exit的参数0
-
int $0x80
编译、执行及结果:
digdeep@ubuntu:~/assembly$ as -o cpuid.o cpuid.s
digdeep@ubuntu:~/assembly$ ld -o cpuid cpuid.o
digdeep@ubuntu:~/assembly$ ./cpuid
The processor Vendor ID is 'GenuineIntel'
阅读(2104) | 评论(0) | 转发(0) |