首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >汇编文件:.a .s .asm之间的区别

汇编文件:.a .s .asm之间的区别
EN

Stack Overflow用户
提问于 2015-12-04 22:33:06
回答 1查看 25K关注 0票数 35

在MIPS模拟器"QTSpim“中,接受三种类型的文件:

  • .a
  • .s
  • .asm

这些文件类型之间是否有区别,如果有,有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 22:52:23

在Unix/Linux系统中:

  • .a是静态库的常用扩展(也称为多个.o文件的归档,用ar(1)创建)。动态库(也称为共享对象)使用.so
  • .s用于asm编译器输出。(gcc -S foo.c生成asm输出,默认文件名为foo.s)
  • .S 用于手工编写的asm源文件.gcc -c foo.S通过C预处理程序运行它(因此您可以使用#include<>#if#define和C风格的注释)。一些C头,比如asm/unistd.h,只有#define,所以可以包括在.S中,以获得像__NR_write系统调用号这样的定义。

在x86中,有两个独立的asm语法版本: AT&T (由gcc这样的Unix编译器使用)和Intel/NASM (有几种方言,比如MASM与NASM本身)。

.S适用于GNU as语法中的asm,无论您是否使用任何C预处理功能。

在x86中,.asm更多地与Intel语法NASM/YASM或MASM源代码相关联。在x86之外,如果使用as,则可能是一个很好的选择,可以由平台特定的汇编程序组装asm源文件。

for all asm source files

具有gcc背景的人可能会将他们的MIPS放入.S.s文件中,而拥有更多NASM/YASM经验(或Windows)的人可能会选择.asm

我建议不要使用.s文件,因为很容易意外地用gcc -S foo.c覆盖。

票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34098596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档