1. 概述

​ 由于操作系统许多关键代码要求有很高的执行速度和效率,因此在一个操作系统源代码中通常就会包含大约 10% 左右的起关键作用的汇编语言程序量。Linux 操作系统也不例外,它的 32 位初始化代码、所有中断和异常处理过程接口程序、以及很多宏定义都使用了 as 汇编语言程序或扩展的嵌入式汇编语句。

​ 在编译 C 语言程序时, GNU gcc 编译器会首先输出一个作为中间结果的 as 汇编语言文件,然后 gcc 会调用 as 汇编器把这个临时汇编语言程序编译成目标文件。即实际上 as 汇编器最初是专门用于汇编 gcc 产生的中间汇编语言程序的,而非作为一个独立的汇编器使用。因此,as 汇编器也支持很多 C 语言特性,这包括字符、数字和常数标识方法以及表达式形式等方面。

2. 汇编程序预处理

​ as 汇编器具有对汇编语言程序内置的简单预处理能力。

该预处理功能会调整并删除多余的空格字符和制表符;
删除所有注释语句并使用单个空格或一些换行符替换它们;
把字符常数转换成对应的数值。

​ 但是该预处理功能不会对宏定义进行处理,也没有处理包含文件的功能。如果需要这方面的功能,那么可以让汇编语言程序使用大写的后缀“.S” 让 as 使用 gcc 的 CPP 预处理功能。

​ 由于 as 汇编语言 程序除了使用 C 语言块注释语句(即 /* */)以外,还使用井号 “#” 作为单行注释开始字符,因此若在汇编之前不对程序执行预处理,那么程序中包含的所有已井号 “#” 开始的指示符或命令均会被当做注释部分。

3. 符号、语句和常数

​ 符号(Symbol)是由字符组成的标识符,组成符号的有效字符取自于大小写字符集、数字和三个字符 “_ . $”。符号不允许用数字字符开始,而且区分大小写。在 as 汇编程序汇总符号长度没有限制,并且符号中所有字符都是有效的。符号使用其他字符(例如空格、换行符)或者文件的开始来界定开始和结束处。

​ 语句(Sttatement)以换行符或者行分割字符(‘;’)作为结束,文件最后语句必须以换行符作为结束。若在一行的最后使用反斜杠 ‘ \ ’ (在换行符前),那么就可以让一条语句使用多行。当 as 读取到反斜杠加换行符时,就会忽略掉这两个字符。

​ 常数是一个数字,可 分为字符常数和数字常数两类。字符常数还可以分为字符串和单个字符;而数字常数可分为整数、大数和浮点数。

​ 字符串必须使用双引号括住,并且其中可以使用反斜杠 ' \' 来转义包含的特殊字符。例如 ‘ \\ ’ 表示一个反斜杠字符。

​ 整数数字常数有 4 中表示方法,即使用 ‘0b’ 或 ‘0B’ 开始的二进制数(‘0-1’);以 ‘0’ 开始的八进制数(‘0-7’);以非 ‘0’ 数字开始的十进制数(‘0-9’)和使用 ‘0x’ 或 ‘0X’ 开头的十六进制数(‘0-9a-fA-F’)。若要表示负数,只需在前面添加负号‘ - ’。

​ 大数(Bignum)是位数超过 32 位二进制位的数,其表示方法与整数的相同。汇编程序中对浮点数常数的表示方法与 C 语言中的基本一样。由于内核代码中几乎不用浮点数,因此这里不再对其进行说明。

4. 指令语句、操作数和寻址

​ 指令(Instructions)是 CPU 执行的操作,通常指令也称作操作码(Opcode);操作数(Operand)是指令操作的对象;而地址(Address)是指定数据在内存中的位置。指令语句是程序运行时刻执行的一条语句,它通常可包含 4 个组成部分:

标号(可选);
操作码(指令助记符);
操作数(由具体指令指定);
注释

​ 一条指令语句可以包含有 0 个或最多 3 个用逗号分开的操作数。对于具有两个操作数的指令语句,第一个是源操作数,第二个是目的操作数。

5. 区与重定位

​ 区(Section)(也称为段、节或者部分)用于表示一个地址范围,操作系统将以相同的方式对待和处理在该地址范围中的数据信息。例如,可以有一个“只读”的区,我们只能从该区中读取数据而不能写入。区的概念主要用来表示编译器生成的目标文件(或可执行程序)中不同的信息区域,例如目标文件中的正文区或数据区。若要正确理解和编制一个 as 汇编语言程序,我们就需要了解 as 产生的输出目标文件的格式安排。

​ 链接器 ld 会把输入的目标文件中的内容按照一定规律组合生成一个可执行程序。当 as 汇编器输出一个目标文件时,该目标文件中的代码被默认设置成从地址 0 开始。此后 ld 将会在链接过程中未不同目标文件中的各个部分分配不同的最终地址位置。ld 会把程序中的字节块移动到程序运行时的地址处。这些块是作为固定单元进行移动的。他们的长度以及字节次序都不会被改变。这样的固定单元就被称作是区(或段、部分)。而为区分配运行时刻的地址的操作就被称为重定向(Relocation)操作,其中包括调整目标文件中记录的地址,从而让它们对应到恰当的运行时刻地址上。

​ 其实,as 汇编器输出产生的目标文件中至少具有 3 个区,分别被称为正文(text)、数据(data)和 bss 区。每个区都可能是空的。如果没有使用汇编命令把输出放置在 ‘.text’ 或 ‘.data’ 区中,这些区会仍然存在,但内容是空的。在一个目标文件文件中,其 text 区从地址 0 开始,随后是 data 区,再后面是 bss 区。

​ 当一个区被重定位时,为了让链接器 ld 知道哪些数据会发生变化以及如何修改这些数据。as 汇编器也会往目标文件中写入所需要的重定位信息。为了执行重定位操作,在每次涉及目标文件中的一个地址时,ld 必须知道:

目标文件中对一个地址的引用是从什么地方算起的?
该引用的字节长度是多少?
该地址引用的是哪个区? (地址) - (区的开始地址)的值等于多少?
对地址的引用与程序计数器 PC(Progarm-Counter)相关吗?

​ 实际上,as 使用的所有地址都可表示为:(区)+(区中偏移)。另外,as 计算的大多数表达式都有这种与区相关的特性。在下面说明中,我们使用记号 “{secname N}”来表示区 secname 中偏移 N。

​ 除了 text、data 和 bss 区,我们还需要了解绝对地址区(absolute 区)。当链接器把各个目标文件组合在一起时,sbsolute 区中的地址将始终不变。例如,ld 会把地址{absolute 0}"重定位"到运行时刻地址 0 处。尽管链接器在连接后绝不会把两个目标文件中的 data 区安排成重叠地址处,但是目标文件中的 absolute 区必会重叠而覆盖。

​ 另外还有一种名为“未定义的”区(Undefined section)。在汇编时不能确定所在区的任何地址都被设置成{undefined U},其中 U 将会在以后填上。因为数值总是有定义的,所以出现未定义地址的唯一途径仅涉及未定义的符号。

​ 类似地,区名也用于描述已链接程序中区的组。链接器 ld 会把程序所有目标文件中的 text 区放在相邻的地址处。我们习惯上所说的程序的 text 区实际上是指其所有目标文件 text 区组合构成的整个地址区域。对程序中 data 和 bss 区的理解也同样如此。

6. 链接器涉及的区

链接器 ld 只涉及如下 4 类区:

text区、data区 —— 这两个区用于保存程序。as 和 ld 会分别独立而同等地对待它们。
对其中text区的描述也同样适合于data区。
然而当程序在运行时,则通常text区是不会改变的。text区通常会被进程共享,其中含有指令代码合常数等内容。
程序运行时data区的内容通常是会变化的,例如,C 变量一般就存放在data区中。
bss区 —— 在程序开始运行时这个区中含有 0 值字节。该区用于存放未初始化的变量或作为公共变量存储空间。
虽然程序每个目标文件 bss 区的长度信息很重要,但是由于该区中存放的是 0 值字节,因此无需再目标文件中保存 bss 区。设置 bss 区的目的就是为了从目标文件中明确地排除 0 值字节。
absolute区 —— 该区的地址 0 总是 “重定位” 到运行时刻地址 0 处。如果你不想让 ld 在重定位操作时改变你所引用的地址,那么就使用这个区。从这种观点来看,你们可以把绝对地址称作是 “不可重定位的”:在重定位操作期间他们不会改变。
undefined区 —— 对不在先前所述各个区中对象的地址引用都属于本区。

下图是 3 个理想化的课重定位的例子。这个例子使用传统的区名称:".text"和".data"。其中水平轴表示内存地址。

aaarticlea/png;base64,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" alt="image">

08GNU as汇编的更多相关文章

  1. u-boot源码汇编段简要分析

    Hi,大家好!我是CrazyCatJack,你们可以叫我CCJ或者疯猫.今天我给大家带来的是u-boot的源代码汇编段分析,以后还会给大家讲解后续的C代码,请持续关注哦^_^ 先简单说一下u-boot ...

  2. GCC 预处理、编译、汇编、链接..

    1简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective ...

  3. GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 分析过程 这是我的C源文件:click here 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb ...

  4. Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly

    注:写在前面,这是一篇翻译文章,本人的英文水平很有限,但内嵌汇编是学习操作系统不可少的知识,本人也常去查看这方面的内容,本文是在做mit的jos实验中的一篇关于内嵌汇编的介绍.关于常用的内嵌汇编(AT ...

  5. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  6. C内嵌汇编-格式

    C内嵌汇编-格式: __asm__(汇编语句部分:输出部分:输入部分破坏描述部分);C内嵌汇编以关键字"__asm__"或"asm"开始, 下辖四个部分, 各部 ...

  7. 20145212——GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 测试代码 #include <stdio.h> short val = 1; int vv = 2; int g(int xxx) { return xxx + ...

  8. C程序汇编运行模式简析

    SJTUBEAR 原创作品转载请注明出处 /<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1. 汇编 ...

  9. 生成ARM汇编

    使用ndk即可生成arm汇编 1.首先写好hello.c 2.编写makefile #ndk根目录 NDK_ROOT=E:\Android\android-ndk-r10b #编译器根目录 TOOLC ...

随机推荐

  1. xml布局文件

    https://blog.csdn.net/u013475386/article/details/44339035 gravity写在容器中中 layout_gravity写在控件中 layout_m ...

  2. postman的安装和使用方法详解

    文章来源:http://www.cnplugins.com/tool/specify-postman-methods.html 非官网安装 这是一种直接通过打包已经安装的扩展程序的方式,来进行我认为的 ...

  3. 一份比较完整的gulpfile.js

    var gulp = require('gulp'); //工具 var autoprefixer = require('gulp-autoprefixer'); var include = requ ...

  4. 4.高级数据过滤 ---SQL

    一.AND操作符 要通过不止一个列进行过滤,可以使用A ND操作符给WHERE子句附加条件. SELECT prod_id, prod_price, prod_name FROM Products ; ...

  5. Django-Rest-Framework的序列化之serializers 序列化组件

    Django-Rest-Framework的序列化之serializers 序列化组件 restful framework 正常的序列化 from django.http import HttpRes ...

  6. Python随笔---return与print,全局变量与局部变量

    Return是指返回一个数值,一般在函数中应用较多 Print则是指把结果打印出来,显示在屏幕上 def sum(a,b): total=a+b print('函数内:',total) return ...

  7. HDU-1068-GirlsandBoys(最大独立集,二分图匹配)

    链接:https://vjudge.net/problem/HDU-1068#author=0 题意: 学校对n个学生(男女都有)进行的调查了,发现了某些学生暗生情愫,现在需要你选出一个最大的集合,这 ...

  8. GYM 101572A(单调队列优化dp)

    要点 较好的思路解析 \(dp[i]\)为到达\(i\)花费的最短时间,\(dis[i]-dis[j]<=lim1\)的情况其实可以省略,因为就相当于没买咖啡,绝对不优于在那之前的某店买了咖啡并 ...

  9. 2017浙江工业大学-校赛决赛 BugZhu抽抽抽!!

    Description 当前正火的一款手游阴阳师又出新式神了,BugZhu十分想要获得新出的式神,所以他决定花光所有的积蓄来抽抽抽!BugZhu经过长时间的研究后发现通过画三角外接圆能够提高获得该式神 ...

  10. linux-ubuntu下调出中文输入法

    linux-ubuntu下调出中文输入法 注:此方法我并没有亲身实践过,只是觉得可能会用到,所以保存一下