分类: C/C++
2007-07-26 10:27:25
最近工作比较闲散,因此抽空看了看汇编,基本上从头开始,看了前面几章不知不觉也学会了“Hello
world”,刚好看的这本书基本上都是以GNU的开发工具为开发环境的,这比较适合我的兴趣。其实看的这几章也就只有一章(这一章还没看完^_^)才是
汇编语言的基础,刚学会了点AT&T的汇编语法,知道了跟Intel的汇编语法的区别,另外这一章用不同的方式实现了cpuid的调用,学会了如
何调用系统调用以及如何调用C函数库中的函数。
先看看下面通过系统调用实现的hello world代码:
.section .data
msg:
.ascii "Hello world!\n"
.section .text
.globl _start
_start:
movl $4, %eax
movl $1, %ebx
movl $msg, %ecx
movl $13, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80
.section .data
output:
.asciz "Hello world!\n"
.section .text
.globl _start
_start:
pushl $output
call printf
addl $8, %esp
pushl $0
call exit