今天开始学习x86汇编:
硬平台:intel,软平台:linux
《汇编语言程序设计》
源码:
root@ubuntu-core:/home/cpuid# vim cpuid.s
1 #cpuid.s sample program to extract the processor vendor ID
2
3 .section .data
4 output:
5 .ascii "The processor Vendor ID is 'XXXXXXXXXXXX'\n"
6 .section .text
7 .globl _start
8 _start:
9 movl $0, %eax //填写cpuid指令的输入
10 cpuid //执行cupid指令
11 movl $output,%edi //获取输出
12 movl %ebx,28(%edi)
13 movl %edx,32(%edi)
14 movl %ecx,36(%edi)
15
16 movl $4,%eax //write函数,内核中对应数字4
17 movl $1,%ebx //标准输出
18 movl $output,%ecx //字符重首地址
19 movl $42,%edx //字符长度
20 int $0x80 //促发系统调用
21 movl $1,%eax //exit函数
22 movl $0,%ebx //函数执行的返回值
23 int $0x80 //促发系统调用
root@ubuntu-core:/home/cpuid# as -o cpuid.o cpuid.s
root@ubuntu-core:/home/cpuid# ld -o cpuid cpuid.o
root@ubuntu-core:/home/cpuid# ./cpuid
The processor Vendor ID is 'GenuineIntel'