
地址0:46c存放的就是这个计数器,可以读取这个,然后加上18,比较就可以实现。代码如下:
mov ax,0
mov ds,ax
mov si,46ch
lodsw
add ax,18
mov cx,ax
loc_1:
mov si,46ch
lodsw
cmp ax,cx
jnb loc_2
jmp loc_1
loc_2:
如果要求非常精确,那就要直接对定时器进行编程,通过端口 *** 作来实现。
延时时间和你设的频率有关,这里把PUSH AX POP AX循环100次,在乘以循环周期就是延时时间,至于用AX,BX无关紧要,只要最后恢复现场就好。当然没问题,++——一样可以,NoP也没问题,LOOP也算时间
MOV AX,5FFFH可修改0000~0FFFFH之内 越大延时越高REP2:
MOV CX,5FFFH
REP10MS:
LOOP REP10MS
DEC AXAX-1->AX
CMP AX,0H比较AX和0的大小
JNE REP2AX不等于0则跳转到 REP2
就是机器没执行一条指令要170ns,数字仅供参考
让循环重复执行5FFF*5FFF次,达到秒级 具体的要自己调试
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)