在Mac OS上编译汇编源并将文件转换为对象/可执行文件

时间:2018-03-15 16:11:03

标签: macos gcc assembly

我对编程非常陌生,我对在Mac OS上编译汇编语言提出了疑问。我知道要将.c转换为.s我应该使用gcc -m32 -S。但是,我已经编写了自己的.s文件。我想知道是否有可能转换.s我所做的,以便我的Mac可以编译它。 问题是我想编译.c.s以验证它们都返回相同的值。

2 个答案:

答案 0 :(得分:1)

您是否只是尝试将.s文件传递给编译器?如果写得正确,那么它将被转换为目标文件和/或可执行文件。

这是一个应该起作用的最小例子:

$ cat 1.s # two lines of a program
.global _main # MacOS expects symbol names decorated
_main: retq # a single return instruction in `main`'s body
$ gcc 1.s # compile it
$ ./a.out # run the resulting program

答案 1 :(得分:1)

生成扩展名为.s的汇编代码后,请使用以下命令:

gcc -o executable-binary-file-name assembly.s    

例如,如果您的程序集文件名为my.s,而您希望将可执行文件名命名为my,则使用命令:

gcc -o my my.s