单片机的定时器溢出后,程序如何执行?

单片机的定时器溢出后,程序如何执行?,第1张

在定时器计数的这段时间里,程序是一步一步向下执行。

要执行定时器中断,要在程序开始就打开定时器中断。当产生溢出后,程序会直接跳到中断程序(不用加跳转指令)。当中断程序执行完毕后,程序会跳回到执行中断程序前的程序处继续运行。

至于如何打开定时器中断,请参考资料。

80x86 的 0 号中断,是针对“除数为零”而设置的。

如果在程序中,做除法之前加以判断,避免除数为零,

那么,0 号中断,就不会发生了。

那么,再这么认真的学习这块内容,就没有实用意义了。

-------------------------

CPU 执行除法指令,确实是容易发生溢出。

一般来说,当被除数的高位,大于等于除数时,就会发生“溢出”。

如果你编写一个“不会溢出”的除法程序,这些问题,就都没有了。

参考下图:

在右图中,

被除数:1A 2B 3C 4DH,有 32 位数。

除数是:BL,仅有 8 位数。

商,是:32 位数。

按照图中的步骤,需要执行四次 DIV  BL。

只要 BL 不为零,就绝对不会发生溢出。

按此思路,被除数的字节数,还可以增加,仅受制于内存的大小。

这就是说:这种除法程序,被除数,可以认为是无限大的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11554944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存