开发者

Does C++ compile to assembly?

Does C++ code compile to assembly code? 开发者_开发技巧If we have C++ code, will we be able to get assembly code?


The vast majority of C++ compilers will convert the C++ source into object files (machine code with enough control information to be linked into an executable). They may actually generate assembly language as an interim step and even use a separate assembler for processing the assembler source, but you'll generally never see that. For example, you have to actually go out of your way to get gcc to generate assembly code (.s file) by using the -S flag. Normally, you would never see the assembly.

But the C++ standard doesn't mandate the final form that's output from the compiler, just that the code has to behave in a certain way when you run it.

In fact, the earliest C++ "compilers" actually generated C source code and then compiled that.

You can have your C++ compiler generate object code, Java byte code, or even GWBASIC, should you be feeling masochistic.


Your code has to be understood by the machine, and, as it is not interpreted nor running in a VM, it is first transformed in assembly. You can get this assembly code by using the -S flag in your g++ compile options (as long as you are using g++ of course).

g++ -S -o file.s file.cpp

should do the trick.


It depends on the compiler. There are no real rules regarding what C++ compiles into, except at some point it should be able run on a computer. Most compilers have a switch to compile to assembly.

With gcc you can add -S to compile into a .asm file.

For visual studio see: http://codegem.org/2008/10/generate-assembly-from-c-code-in-visual-studio

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜