assembly - 汇编语言的汇编和链接步骤

标签 assembly

  • 我想知道目的是什么
    组装后的链接步骤
    步?为什么不运行输出
    没有链接步骤的汇编程序?

    对于 C 来说,链接就是把几个
    生成的目标文件
    编译成单个对象
    文件。但是对于汇编语言,
    只有一个目标文件
    “链接”,那么为什么要链接一个
    单个目标文件?例如,
    http://zahidirfan.blogspot.com/2010/01/two-steps-to-using-assembly-in-linux.html

    如果只有一个目标文件并且不需要库,是否不需要链接?就像我上面给出的例子一样?
  • 执行汇编程序的输出和
    链接器的输出具有相同的
    格式?它们都是二进制文件吗?

  • 谢谢并恭祝安康!

    最佳答案

    汇编器产生目标文件作为输出,就像编译器一样。

    您链接它们的原因也几乎相同——能够使用库。链接器也(通常)知道目标可执行格式。

    也就是说,有些汇编程序可以直接生成可执行文件,而不涉及链接器。如果有内存,NASM 可以直接生成一些可执行格式,并且一些用于 MS-DOS 的旧汇编程序(例如 A86)也可以/确实以这种方式工作。

    这些更简单的设置和更快的组装周期使它们对初学者非常方便,但是将所有代码放入单个模块的要求使得它们不太适合大型项目。

    关于assembly - 汇编语言的汇编和链接步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287210/

    相关文章:

    c++ - 从 0X7c90120120e 处的代码调用的用户断点

    assembly - 在添加中使用下半部分后取消引用 64 位寄存器

    assembly - “Unaligned address in store” 保存单词时出错

    c - 汇编编译器是如何编程的

    c - 在禁用优化的情况下进行编译时,为什么clang不使用内存目标x86指令?他们有效率吗?

    assembly - 获取操作码的简单方法

    c - 来自 C 程序的汇编代码

    gcc - 如何在GCC内联汇编中的Intel x86_64寄存器r8至r15上指定寄存器约束?

    assembly - 为什么 "inc dword [esp + ebx]"比 "inc [esp]"快?

    c - 如何在 MacOS X 下的 GCC 中使用内联汇编器调用 write 系统调用?