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