写的这个算不算时钟
;名称:time;功能:延迟N秒返回
;参数:(bx) = 延迟的时间(s)
;返回:无
time:push ax
time1:
;首先判断秒数是否为0,为0直接结束
cmp bx, 0
je ok
time2:
dec bx;每执行一次秒数减1,(bx)看成秒数,当bx为0的时候返回
;将秒数置0
mov al, 0;要访问0号单元
out 70h, al;将要读写的单元写入地址端口
out 71h, al;将秒置0
;循环判断秒数是否增加
time3:
in al, 71h;取现在秒数
cmp al, 0;因为前面设置秒数为0,现在判断是否不等于0,不等于0说明增加了
jne time1;增加了继续判断bx
jmp short time3;没有改变继续监视
ok:
pop ax
ret
页:
[1]