汇编语言教程文件后缀大小写S区别分析详解

 更新时间:2021年11月5日 12:00  点击:2541 作者:Mr.Idleman

一、大小写后缀的区别

.s     汇编语言源程序;汇编
.S     汇编语言源程序;预处理,汇编

小写的s文件,在后期阶段不在进行预处理操作,所以我们不能在这里面写预处理的语句在里面

大写的S文件,还会进行预处理、汇编等操作,所以我们可以在这里面加入预处理的命令

 二、编译的相关流程

预处理(Pre-Processing)-->编译(Compiling)-->汇编(Assembling)-->链接(Linking)

1、预处理器

       根据以字符#开头的命令(directives),修改原始的C程序。

       这个阶段并不会去检查代码的错误,只会把#的语句转成C代码。

2、编译阶段

       在这个阶段中,Gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc把代码翻译成汇编语言。用户可以使用”-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。汇编语言是非常有用的,它为不同高级语言不同编译器提供了通用的语言。如:C编译器和Fortran编译器产生的输出文件用的都是一样的汇编语言。

3、汇编阶段

       汇编阶段是把编译阶段生成的”.s”文件转成目标文件,读者在此可使用选项”-c”就可看到汇编代码已转化为”.o”的二进制目标代码了。

4、链接阶段

       将库函数(头文件中用到的)等链接到目标文件中。

       在成功编译之后,就进入了链接阶段。在这里涉及到一个重要的概念:函数库
       "stdio.h"中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实现”printf”这些库函数的呢?最后的答案是:系统把这些函数实现都被做到名为libc.so.6的库文件中去了,在没有特别指定时,gcc会到系统默认的搜索路径”/usr/lib”下进行查找,也就是链接到libc.so.6库函数中去,这样就能实现函数”printf” 了,而这也就是链接的作用。
       函数库一般分为静态库和动态库两种。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为”.a”。动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为”.so”,如前面所述的libc.so.6就是动态库。gcc在编译时默认使用动态库。

       完成了链接之后,gcc就可以生成可执行文件。

以上就是汇编文件后缀.s与.S区别分析详解的详细内容,更多关于汇编文件后缀.s与.S的资料请关注猪先飞其它相关文章!

原文出处:https://blog.csdn.net/qq_42059060/article/details/104066742

[!--infotagslink--]

相关文章

  • 汇编语言教程文件后缀大小写S区别分析详解

    这篇文章主要为大家介绍了汇编文件后缀.s与.S区别分析详解,文中详细的讲解了大写的S与小写的s后缀在汇编语言中的作用区别,有需要的朋友可以借鉴参考下...2021-11-05
  • 使用springmvc临时不使用视图解析器的自动添加前后缀

    这篇文章主要介绍了使用springmvc临时不使用视图解析器的自动添加前后缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-29
  • win2008 IIS7无后缀URL部署问题 MVC4 MVC URL映射

    这篇文章主要介绍了win2008 IIS7无后缀URL部署问题 MVC4 MVC URL映射,需要的朋友可以参考下...2016-01-27
  • vue自动添加浏览器兼容前后缀操作

    这篇文章主要介绍了vue自动添加浏览器兼容前后缀操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-13
  • php中获取文件后缀名多种方法

    以前我都讲过了很多关于获取文件后缀名的方法,今天我们再次总结一下关于利用不同种函数来取得,有需要的朋友可以参考一下 一,php explode函数,函数用法参考 http://...2016-11-25
  • PHP 批量修改文件名/文件后缀名(扩展名)

    今天我有几千个文件要一次修改文件或把后缀名给改了,但是我要手工一个个去改,不得改几天后来想到一个办法,利用php写一个量修改文件名/文件后缀名程序,一下就实现了,下面来...2016-11-25
  • php取得文件后缀名方法

    下面举出了三种获取文件缀名方法代码有需要的朋友可以参考一下。 <?php教程 //方法一: function extend_1($file_name) { $retval=""; $pt=strrpos($file_n...2016-11-25
  • php获取文件后缀名的几种方法

    后缀名指的是文件拓展名了,我们在php中可以通过许多的方法来获得了,下面一起来看小编整理的一些例子吧。 获取文件后缀的方法有很多种,差不多能总结出7,8种,原理基本...2016-11-25
  • IIS7.5 配置自定义后缀的ASP文件 无法执行 总是提示下载的解决方法

    这篇文章主要介绍了IIS7.5 配置自定义后缀的ASP文件 无法执行 总是提示下载的解决方法,需要的朋友可以参考下...2016-07-04
  • php中一行代码获取文件后缀名

    php中一行代码获取文件后缀名的方法要结合很多的函数了,我们这个有点像asp中的函数了,下面来一起看看吧。 实例: 代码如下 复制代码 $filenam...2016-11-25
  • php获取文件后缀的9种方法

    这篇文章主要为大家详细介绍了php获取文件后缀的9种方法,有一定的实用价值,感兴趣的小伙伴们可以参考一下...2016-03-27
  • php获取上传文件类型 获取文件后缀

    本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断。 ...2016-11-25
  • spring mvc url匹配禁用后缀访问操作

    这篇文章主要介绍了spring mvc url匹配禁用后缀访问操作,具有很好的参考价值,希望对大家有所帮助。以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家...2021-07-19
  • Springboot配置suffix指定mvc视图的后缀方法

    这篇文章主要介绍了Springboot配置suffix指定mvc视图的后缀方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-03
  • php 取文件后缀名几种有效的方法

    要取得文件后缀名在php中有很多的广告,如php函数pathinfo得出结果后的$extend[\"extension\"]就是一个不错的方法,后面都是民间自定义有需了解的朋友也可以参考一下。...2016-11-25