2012-01-22 99 views
-1

我需要计算将为简单汇编语言代码生成的指令数。因此,即使有任何循环,我也可以计算循环中的指令数量。我只需要它,这样我就可以确定我可以使用-p选项来指定每条指令在代码中的次数。我在widows xp电脑上使用masm。计算X86汇编语言代码中的指令数

+0

目前尚不清楚为什么源代码不够用。你能给个例子吗?另外,'-p'选项是做什么的? –

+0

@alex -p选项。就像编译器中的选项一样。它有助于逐行跟踪代码。当我给这个命令调试program.exe与-p选项。它为我提供了该指令的所有寄存器的内容。如果再次按下-p,它将移动到代码中的第二条指令,并向我提供该指令执行的寄存器内容。就像明智的我需要确定多少次我需要给予-p选项。我可以计算不包含分支和循环的简单代码的行数。但是带有循环的代码很难确定 –

+0

这不仅仅是“困难”,而且是棘手的。 – StilesCrisis

回答

3

这实际上比您想象的要困难得多。 (有人会说不可能 - 见http://en.wikipedia.org/wiki/Halting_problem

如果代码依赖于任何类型的数据(例如从RAM加载值),其行为可能会根据数据包含的内容大幅改变,这将影响指令执行。例如如果它是一个循环,它可能会从内存某处加载它的迭代计数。所以它可以执行100条指令,或100000000条指令。