0

在我正在上的一堂职业课中,我们使用如下子程序作为时间延迟。

      push ax
      push bx
      mov ax, 1000
B---> mov bx, FFFF
A---> nop
      dec bx
      jnz (A)
      dec ax
      jnz (B)
      pop bx
      pop ax
      ret

其中 (1000) 和 (FFFF) 是流动的、十六进制的 4 位数值。

我希望有人能帮我用这个程序准确地计时。(例如:10 秒)如果可能,请提供一个方程式供我和我的班级使用。

4

1 回答 1

0

为了使用此代码进行计时,您需要知道循环本身的持续时间;有多种方法可以做到这一点:

  1. 使用软件开发人员手册查找每条指令的时序。

  2. 使用rdtsc指令测量时钟周期

在任何一种情况下,您都需要除以 CPU 的时钟频率才能获得以秒为单位的时间。

于 2014-11-05T14:51:06.973 回答