单片机汇编语言延时函数时间该如何计算?

单片机汇编语言延时函数时间该如何计算?,第1张

第一个延时,mov指令一个时钟,第二个DJNZ跳转是三个时钟,不跳转两个时钟,从255(0FFH)开始每次减一,255次,共255*3-1=764次,最后一次不跳转,只有两个时钟,所以减一,再加上第一条指令的一个时钟,结果是255个时钟,如果时钟周期是一微秒,那么延时了255微秒。第二个延时程序有两个循环,结果是(765+3)*765个时钟,再乘以时钟周期就是延时时间了。自己分析吧。

因为这段程序要用到BX和CX,所以一开始要PUSH,把他们的值保存起来。程序结束最后把他们POP掉,恢复一开始的值。

在PUSH POP之间,可以放心的使用这两个寄存器。

MOV CX,0FFFFH

LOOP D2

就会循环0FFFFH次。

而这个循环又会执行0FFH次。

所以大概执行了0FFFFFFH条语句。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存