pax*_*blo 22
绝大多数C++编译器会将C++源代码转换为目标文件(具有足够控制信息的机器代码可链接到可执行文件中).它们实际上可能会生成汇编语言作为临时步骤,甚至使用单独的汇编程序来处理汇编程序源,但您通常不会看到它.例如,您必须实际gcc使用-S标志来生成汇编代码(.s文件).通常情况下,你永远不会看到装配.
但是C++标准没有强制要求编译器输出的最终形式,只是代码在运行时必须以某种方式运行.
事实上,最早的C++"编译器"实际上生成了C源代码,然后编译了它.
如果你感觉自虐,你可以让你的C++编译器生成目标代码,Java字节代码,甚至GWBASIC.
Ant*_*sse 18
您的代码必须由机器理解,并且由于它不在VM中解释或运行,因此首先在汇编中进行转换.您可以使用-Sg ++编译选项中的标志来获取此汇编代码(只要您使用g ++).
g++ -S -o file.s file.cpp
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.
这取决于编译器。c++ 编译成什么没有真正的规则,除了在某些时候它应该能够在计算机上运行。大多数编译器都有一个编译为汇编的开关。
使用 gcc,您可以添加 -S 以编译为 .asm 文件。
对于视觉工作室,请参阅http://codegem.org/2008/10/generate-assembly-from-c-code-in-visual-studio
| 归档时间: |
|
| 查看次数: |
19369 次 |
| 最近记录: |