我有一个关于优化我从.cpp文件获得的程序集文件的问题! 这是我的计算机组织课程。 hw如下。 我必须编写一个程序来计算两个向量的点积并生成.asm文件。然后,我必须优化.asm文件并使用Visual Studio上的QueryPerformanceCounter比较执行时间。我生成了.asm文件并在其中找到了循环部分。我正在尝试学习基本的汇编语言来优化程序集。但是,我不知道如何执行.asm文件。我的教授提到了.cpp文件和程序集之间的链接,但不知道这意味着什么。 任何帮助都会得到满足。
答案 0 :(得分:0)
如果我理解教授的要求,你需要分步完成:
在C ++中创建一个函数来计算点积。
在main()
中,将此函数循环调用数千次,比如5000次。
在此循环之前和之后添加对QueryPerformanceCounter
的调用。
运行您的程序并记下将您的功能调用5000次所需的总时间。
使用编译器为您的函数生成程序集。将该程序集保存到.asm文件,然后对其进行优化。
使用适当的汇编程序汇编.asm文件,以生成.obj文件。
编译.cpp文件并将其链接到您在上面的步骤中生成的.obj文件,以生成.exe文件。
再次运行程序并记下调用优化功能5000次所需的总时间。
比较两个测量值(并注意编译器在优化方面可能比你更好)。
您不会说出您正在使用的编译器,汇编程序或硬件平台,因此我无法提供更多详细信息。