at&t汇编学习(一)

     工作一年了,很是迷茫,一个程序员不知到何去何从,现在互联网上每天都会出现大量的编程语言,大量的新技术,感觉没有自己的方向。

     本人对操作系统感兴趣,工作的方向是xen虚拟化研究,在阅读源码的过程中遇到许多和汇编语言相关的知识,这里总结一下汇编语言。

     找不到方向就积累知识。


     at&t汇编语言的基本框架如下所示

.section .data
.section .text
.globl _start
_start:
    movl $1, %eax
    movl $0, %ebx 
    int $0x80 
这是一个简单的汇编程序,它的功能非常简单,就是“退出”,将上述代码片段保存成文件exit.s


汇编:

as exit.s -o exit.o
利用as工具将汇编语言汇编成为目标文件(.o文件)

链接:

ld exit.o -o exit
利用ld工具将一个或多个目标文件链接成为可执行文件

执行:

./exit


下面简单介绍一下这段代码的含义

.section是汇编语言的一种“伪指令”,因为这种指令不会被翻译成为机器语言,而只是在汇编器内部使用,不占用存储空间,不会被计算机执行。在linux世界中可执行程序的格式为ELF格式,一个ELF文件由许多段组成,这个伪指令的功能就是标识一个段的起点。

.section .data标识程序数据段的起点,我们可以在这个段中定义任意需要内存的数据,其通常是可读写的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值