+ -
当前位置:首页 → 问答吧 → 关于时间延迟的代码有些不懂

关于时间延迟的代码有些不懂

时间:2011-12-13

来源:互联网

Delay Proc  
  push dx
  push cx
  xor ax,ax
  int 1ah
 
  mov cs:Times,dx
  mov cs:Times[2],cx
Read_Time: 
  xor ax,ax
  int 1ah
  int 3
  sub dx,cs:Times
  sbb cx,cs:Times[2]
  cmp dx,Didas
  jb Read_Time
  pop cx
  pop dx
  ret 
  Times dw 0,0 
Delay EndP 
有人能详细解释一下这段代码吗,看不大明白。

作者: Justpigboy   发布时间: 2011-12-13

看下 int1ah 的 00 功能调用就能明白个大概了。就是看当前的时钟 ticks 数是不是过了指定的值;没有就继续等,这样就达到了延时的目的了。
不过,这代码里的 int3 好像不妥。可以用 hlt 指令,但也该在 int1ah 指令前更合适。

作者: zara   发布时间: 2011-12-13