linux - 如何在linux中编译运行汇编代码

标签 linux assembly compilation

作为一个整体,我对汇编和 Linux 还很陌生。我在 gitHub 上发现了一个用 Assembly 编写的太空入侵者程序。但我尝试编译并运行它,但不知道如何操作。

我首先想到我可以使用 gcc -o name name.s 但那没有用。

就像我说的,我对使用 linux 完全陌生,如果有人能向我解释如何编译它并让它运行,我将不胜感激。

这是链接:https://github.com/timotei/Space-Invaders-Clone/blob/master/spacein.asm

最佳答案

在 linux 下,标准汇编程序是 as。如果你想在 c 或 c++ 环境中使用汇编程序源,你可以给编译器例如如果您想使用 C 预处理器,则 gcc 使用 -xassemblerxassembler-with-cpp 提示。如果文件名以标准文件名结尾,如 *.s*.S,通常 gcc 也接受汇编源代码。

这里已经有另一个处理 dos 汇编程序的问题: Taking an Assembly Course, Stuck in DOS!

也许您会发现其他一些讨论有帮助: https://www.winehq.org/pipermail/wine-users/2007-November/028174.html

但我不明白为什么有人想要在 x86 上开始使用汇编程序,如果你不是操作系统程序员或内核黑客。 :-)

关于linux - 如何在linux中编译运行汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484336/

相关文章:

linux - nohup 是如何工作的?

assembly - 为什么将 32 位寄存器移动到堆栈然后从堆栈移动到 xmm 寄存器?

java - 从命令行编译

gcc - objdump 反汇编与源代码不匹配

linux - Perl - 管道命令到另一个

php - HTAccess URL 重写影响 GET 变量

Java进程在运行时打印输出

string - 从汇编中的读取输入中删除尾随换行字符

assembly - 为什么在使用堆栈框架操作时 ebx、esi 和 edi 不可用?

c++ - 获取中间 C 代码的命令行选项