源代码/机器语言的比率

时间:2013-03-01 01:45:50

标签: computer-science computer-architecture

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

1 个答案:

答案 0 :(得分:1)

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

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

gcc -S ...

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

with MSVC

cl.exe /FA

...你可以添加c(即/FAc),它也会编译它。您需要查找.asm个文件。

另见:How can I see the assembly code for a C++ program?

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

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