为什么在Windows C ++项目中使用asm文件?

时间:2017-06-29 05:55:27

标签: c++ visual-studio-2010 assembly

我已经开始维护Windows工具了。该工具主要用C ++编写,提供GUI,通过COM接口连接本地运行的服务器。在源文件夹中,我看到了很多.asm文件。我知道在一些嵌入式应用程序中,我们可以在C文件中插入一些装配线,以便调用中断或读/写寄存器(我不确定)。项目创建者已退休,我无法理解为什么那些.asm文件存在。为什么我们需要它们?它们是由Visual Studio自动创建的吗?它们只是为了加快编译过程吗? 我提供了3张图片,以便更好地理解。 图1显示了Windows资源管理器视图: enter image description here

图2显示了源洞察视图。每个asm文件都有一个具有相同名称的cpp文件: enter image description here

图3显示了VS2010项目中的视图,没有包含asm文件。 enter image description here

1 个答案:

答案 0 :(得分:4)

项目似乎正在使用/FAu编译器选项。生成.asm文件不是构建项目所必需的。它们是人类可读的汇编程序,可用于检查编译器输出的指令。

根据MSDN documentation for the flag

  

创建包含汇编代码的列表文件。

     

使输出文件以UTF-8格式创建,带有一个字节   订单标记。默认情况下,文件编码为ANSI,但使用/ FAu if   您想要一个在任何系统上正确显示的列表文件,或者是否   您正在使用Unicode源代码文件作为编译器的输入。