既然所有程序设计语言的第一个例子都是在屏幕上打印一个字符串 "Hello World!",那我们也以这种方式来开始介绍 Linux 下的汇编语言程序设计。
在 Linux 操作系统中,你有很多办法可以实现在屏幕上显示一个字符串,但最简洁的方式是使用 Linux 内核提供的系统调用。使用这种方法最大的好处是可以直接和操作系统的内核进行通讯,不需要链接诸如 libc 这样的函数库,也不需要使用 ELF 解释器,因而代码尺寸小且执行速度快。
Linux 是一个运行在保护模式下的 32 位操作系统,采用 flat memory 模式,目前最常用到的是 ELF 格式的二进制代码。一个 ELF 格式的可执行程序通常划分为如下几个部分:.text、.data 和 .bss,其中 .text 是只读的代码区,.data 是可读可写的数据区,而 .bss 则是可读可写且没有初始化的数据区。代码区和数据区在 ELF 中统称为 section,根据实际需要你可以使用其它标准的 section,也可以添加自定义 section,但一个 ELF 可执行程序至少应该有一个 .text 部分。下面给出我们的第一个汇编程序,用的是 AT&T 汇编语言格式:
分享到:
相关推荐
AT&T汇编语法手册,详细讲述每条命令的使用,影响的寄存器。
如果我们选择的汇编开发工具是GCC/GAS的话,就必须了解AT&T汇编语法,因为GCC/GAS只支持这种汇编语法。
AT&T汇编语言与GCC内嵌汇编简介 linux 内核 汇编 介绍以上内容。pdf文件
AT&T汇编语言与GCC内嵌汇编简介.pdf
好不容易找了一篇稍全面又简洁的指令集介绍 add,mov(bwl),test,sub,shr,cmp,lea,je,jne,ja,jb 列出来帮助搜索
基本满足需要,AT&T汇编正式linux下gcc编译后产生的 GNU汇编语言
AT&T汇编伪指令: 详细介绍了全部伪指令,是系统开发、优化的重要参考。
AT&T汇编教程,Richard Blum巨著,非常经典,适合GCC深入学习和AT&T汇编学习者
AT&T汇编资料打包,这是本人从网络收集的AT&T汇编资料的压缩包。
AT&T汇编语言语法[归类].pdf
AT&T汇编语言格式
AT&T汇编语言文档很少,而且都是比较过时的版本。我这个是2015年出版的最新版本。x86版本。
老版本的AT&T汇编 X86; 新版本可以看我的另外一个分享
AT&T汇编语言,它适合于Linux平台上的开发
Richard Blum经典汇编教程,非常适合学习AT&T汇编的童鞋使用
AT&T汇编语言与GCC内嵌汇编简介[定义].pdf
对AT&T汇编语法详尽清晰的描述,看过一遍就会了,非常清晰