繁体   English   中英

C ++编译器中的汇编语言输出

[英]Assembly language output in a C++ compiler

C ++编译器是否通过汇编语言代码生成机器代码(即,c ++编译器首先将C ++代码转换为汇编语言代码,然后使用汇编语言编译器将其转换为机器代码),或者汇编语言输出生成只是一个参考选项或调试目的?

它不必,但大多数都是这样做的,因为相同的汇编程序(程序)可以用于C / C ++ /无论汇编程序编译器的输出。

例如,g ++首先生成汇编代码(您可以使用-S开关查看生成的汇编程序)。
MSVC也是这样做的( /FAs )。

很久以前他们习惯了,虽然这只是C编译器的典型。 很久以前,我使用的第一个就是这样工作的。 对于那些为不寻常的硬件和操作系统生成代码的人来说并不罕见,他们节省了编写目标文件生成器和利用现有链接器的成本。

现代编译器不需要为生成机器代码作为文本和运行汇编程序的额外步骤而烦恼,它们直接以二进制形式生成机器代码。 编译速度优势相当显着,文本并不便宜。 从二进制文本形式生成它的选项非常简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM