汇编 延时子程序

要求延时具有准确的时间!

用delay来产生延时在要求较高的场合不大合适。

可调用系统时间来产生准确的延时,并且可控制延迟时间

TEMP: MOV AH,2CH
INT 21H
ADD DH,5 ;获得时间.DH为 当前的秒数,5秒可以自己选择
PUSH DX
WAIT:

POP DX
MOV AL,DH
PUSH DX

MOV AH,2CH ;新的时间
INT 21H

CMP DH,AL
JB WAIT ;小于5秒的话继续查询

欢迎讨论
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-10
daily proc near
mov cx,2000H
D0:mov ax,0FFFFH
D1:dec ax
jz D1
loop D0
daily endp
延时大概是0.33s
其实延时跟CPU有很大关系,不能用软件精确计算,可以用8254实现,硬件和软件功能具有逻辑上的等效性。本回答被提问者和网友采纳
第2个回答  2019-06-02
首先看第二组,D2:
MOV
R2,#05H
DJNZ
R2,D2
这是一个死循环,出不来。
然后看第一组,
D1:
MOV
R2,#05H
D2:
NOP
DJNZ
R2,D2
,运行五遍D2。然后检查R1,不为0,在运行五遍D2,然后检查R1,为0。结束
再看第三组
D2:
NOP
DJNZ
R2,D2
运行五遍D2,然后检查R1,不为0,跳到D1,但是此时R2为0,减去一后变成0ffh,运行256次D2,R2变为0,然后在检查R1,为0后返回。
第3个回答  2009-06-25
多么准确?时间范围多少?
单片机就用定时器,PC就用BIOS提供的延时中断调用(好像是68H中断),去查查书吧。
相似回答