我怎么知道装配周期何时结束?

时间:2015-11-06 15:41:18

标签: assembly x86

我确实有这段代码来确定执行了多少条指令。

  movl 10, %eax
  movl 0, %ecx
ciclo:
  addl %eax, %ecx
  decl %eax
  jnz ciclo

在其他示例中,我发现它更容易,因为在循环结束时有cmpl。但在这种情况下,我怎么知道执行了多少指令?

1 个答案:

答案 0 :(得分:1)

条件跳转只检查标志的状态,他们不关心它们是如何设置的。 CMP设置了标志,但是其他一些指令也是如此。这全部写在指令集参考中。 DEC设置JNZ检查结果是否为零的零标志(这并不奇怪)。因此,循环运行10次,因为JNZ重复,而标志设置。

您也可以在调试器中运行它并自己查看:)