Assembly 如何编译高级代码以获得汇编代码?
我想知道是否有一些特殊的方法来编译高级代码(最好是从c/c++或java)以获得相应的汇编代码。假设您使用的是gcc,告诉您使用Assembly 如何编译高级代码以获得汇编代码?,assembly,compilation,Assembly,Compilation,我想知道是否有一些特殊的方法来编译高级代码(最好是从c/c++或java)以获得相应的汇编代码。假设您使用的是gcc,告诉您使用gcc-O2-s-cfoo.c 请查看编译器的手册/doco,我确信有一个选项可以执行此操作。假设您使用的是gcc,则告诉您使用gcc-O2-S-cfoo.c 查看编译器的手册/doco-我确信有一个选项可以执行此操作。-p>它将向扩展名为.s的文件发出汇编代码。例如,以下命令: gcc -O2 -S -c foo.c 将生成的程序集代码保留在文件foo.s上 如果要
gcc-O2-s-cfoo.c
请查看编译器的手册/doco,我确信有一个选项可以执行此操作。假设您使用的是gcc,则告诉您使用gcc-O2-S-cfoo.c 查看编译器的手册/doco-我确信有一个选项可以执行此操作。-p>它将向扩展名为.s的文件发出汇编代码。例如,以下命令:
gcc -O2 -S -c foo.c
将生成的程序集代码保留在文件foo.s上
如果要查看C代码及其转换为的程序集,请使用以下命令行:
gcc -c -g -Wa,-a,-ad [other GCC options] foo.c > foo.lst
将组合的C/assembly列表输出到文件foo.lst
大多数编译器将支持类似于帮助调试编译器本身的东西 -它将向扩展名为.s的文件发出程序集代码。例如,以下命令:
gcc -O2 -S -c foo.c
将生成的程序集代码保留在文件foo.s上
如果要查看C代码及其转换为的程序集,请使用以下命令行:
gcc -c -g -Wa,-a,-ad [other GCC options] foo.c > foo.lst
将组合的C/assembly列表输出到文件foo.lst
大多数编译器将支持类似于帮助调试编译器本身的东西这些语言有很大的不同,C和C++通常被编译成机器代码,而java使用虚拟机。你不能将java编译成汇编语言(如果你想看到机器代码,使用调试器),但是C++或C++应该很容易,这取决于编译器。例如,当使用<代码> GCC < /code >时,只需给出一个
-s>代码>选项,它将产生一个汇编代码文件而不是目标代码。 ,这些语言有很大不同,因为C和C++通常被编译成机器代码,而java使用虚拟机。你不能将java编译成汇编语言(如果你想看到机器代码,使用调试器),但是C++或C++应该很容易,这取决于编译器。例如,当使用gcc
时,只需给它一个-S
选项,它将生成一个汇编代码文件而不是目标代码。许多编译器都提供了列出生成的汇编代码的选项。例如,gcc有-S选项,它将在汇编之前停止编译,留给您汇编文件。许多编译器都有列出生成的汇编代码的选项。例如,gcc有-S选项,它将在汇编之前停止编译,并留给您汇编文件。您知道g++是否有此功能吗?如果是,你如何使用它?Thxtg++的选项应该是samei太懒了,没有阅读手册页,哈哈。我想我现在必须这么做了。谢谢大家的帮助~~你知道g++是否有这个函数吗?如果是,你如何使用它?Thxtg++的选项应该是samei太懒了,没有阅读手册页,哈哈。我想我现在必须这么做了。thx为大家提供帮助~~有一些Java编译器(比如)可以编译本机代码,而不是JVM字节码。您可以查看生成的程序集,有些Java编译器(如)编译本机代码,而不是JVM字节码。您可以查看生成的程序集以查找这些。可能重复的可能重复的