求: 精确1秒延时 汇编 11059200 ? 在线等!!

来源:百度知道 编辑:UC知道 时间:2024/05/09 12:56:16
怎样在汇编语言下 做出 绝对精确的1秒延时 要求程序尽量短? 谢谢(要求一点也不差的1秒) 晶振频率11059200
晶振频率 12M 也可

mov al,10110110b ;初始化定时器
out 43h,al ;设置N值为04A9H
mov ax,4a9h
out 42h,al
mov al,ah
out 42h,al
in al,PORT_B;打开定时器及与门
or al,3
out PORT_B,al;以下为定时部分
mov ah,0;选择1AH中断的0号功能
delay:int 1ah;调用1AH中断取得当前时钟计数
add dx,12;在当前时钟计数上加12为定时1秒
mov bx,dxint 1ah;保存定时终了时的计数值
cmp dx,bx;两次调用1AH中断取得时钟计数值
jne delay;到达定时终了时的计数值了吗?
in al,PORT_B;没有到达,则返回DELAY处继续
and al,0fch;定时终止,关闭定时器及与门
out PORT_B,al
int 20h;结束程序
main endp
code ends
end