
REP2:
MOV CX,5FFFH
REP10MS:
LOOP REP10MS
DEC AXAX-1->AX
CMP AX,0H比较AX和0的大小
JNE REP2AX不等于0则跳转到 REP2
就是机器没执行一条指令要170ns,数字仅供参考
让循环重复执行5FFF*5FFF次,达到秒级 具体的要自己调试
用IO指令,但是你得先做试验。没有软盘没关系的,IO寻址不存在什么错误不错误的,因为是否错误是要编程者自己去判定的,你不需要理他,只需要试验下时间有多久就可以了。
默认的时间中断是每秒产生18.2次,如果要求不精确,就用18次时钟中断来延时一秒。地址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:
如果要求非常精确,那就要直接对定时器进行编程,通过端口 *** 作来实现。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)