Assembly 计算X86汇编语言代码中的指令数

Assembly 计算X86汇编语言代码中的指令数,assembly,x86,masm,Assembly,X86,Masm,我需要计算为一个简单的汇编语言代码生成的指令数。因此,即使有任何循环,我也可以计算该循环中的指令数。我只需要它,就可以确定在代码中每个指令可以使用-p选项的次数。我正在widows xp计算机上使用masm。这实际上比您想象的要困难得多。有人会说看不到 如果代码依赖于任何类型的数据,例如从RAM加载值,则其行为可能会根据数据所包含的内容发生剧烈变化,这将影响执行的指令数。e、 如果它是一个循环,它可能会从内存的某个地方加载它的迭代计数。因此,可以执行100条指令,或者100000000条指令。不

我需要计算为一个简单的汇编语言代码生成的指令数。因此,即使有任何循环,我也可以计算该循环中的指令数。我只需要它,就可以确定在代码中每个指令可以使用-p选项的次数。我正在widows xp计算机上使用masm。

这实际上比您想象的要困难得多。有人会说看不到


如果代码依赖于任何类型的数据,例如从RAM加载值,则其行为可能会根据数据所包含的内容发生剧烈变化,这将影响执行的指令数。e、 如果它是一个循环,它可能会从内存的某个地方加载它的迭代计数。因此,可以执行100条指令,或者100000000条指令。

不清楚为什么源代码不够。你能举个例子吗?还有,-p选项有什么作用?@alex-p选项。类似于编译器中的“跳过”选项。它有助于逐行跟踪代码。当我给出这个命令时,用-p选项调试program.exe。它给出了该指令的所有寄存器的内容。如果再次按-p,它将移动到代码中的第二条指令,并给出该指令执行的寄存器内容。像wise一样,对于每一条指令,我需要确定需要给-p选项多少次。我可以计算不包含分支和循环的简单代码的行数。但是带循环的代码很难确定它不仅困难,而且很难处理。@user953131:难道你不能在汇编之后设置一个断点,让调试器执行到该断点,从而跳过汇编语言代码的末尾,而不需要知道跳过了多少条指令吗?