0

对于计算机科学作业,我应该用任何语言编写一个小程序,并确定源代码指令与已编译机器代码指令的比率——我该怎么做?

4

1 回答 1

1

根据您的编译器,您可以使用开关来创建代码的汇编器版本。汇编代码是操作码(“机器语言”)的直接助记符表示。

使用gcc-masm=intel(如果您更喜欢英特尔而不是默认的 AT&T 语法,请考虑添加):

gcc -S ...

据我所知,unixoid 系统上的其他编译器也支持-S. 这将跳过编译,您将要查找以源文件命名的文件,但扩展名为.s.

使用 MSVC

cl.exe /FA

...您可以添加c(ie /FAc) 这也将编译它。然后,您将要查找.asm文件。

另请参阅:如何查看 C++ 程序的汇编代码?

完成此操作后,您基本上会比较(相关!)源代码行。然而,什么是相关的取决于你自己(或你老师)的判断。有一些工具可以计算SLOC,例如这篇维基百科文章中引用的工具:SLOCCount

注意:第一段中关于直接代表的陈述略有不正确。如果我们在谈论宏汇编程序,那么这不成立,因为宏。但是即使 MSVC 使用宏汇编器作为后端,编译器也没有过多地使用宏功能,因此它们不应该(太多)干扰 SLOC 计数。

于 2013-03-01T02:25:11.667 回答