对于计算机科学作业,我应该用任何语言编写一个小程序,并确定源代码指令与已编译机器代码指令的比率——我该怎么做?
问问题
660 次
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 回答