|

楼主 |
发表于 2010-6-2 06:55:00
|
显示全部楼层
那么什么又是“指令周期”呢?
个人理解是:所谓指令周期,是指执行一条指令所需要的时间。
在51单片机中,指令周期是由若干机器周期组成的。
大家知道,51单片机具有固定的机器周期。举个例子,当时钟频率“fosc”为12MHz时,一个机器周期就是1uS(1微秒)。这里面的关系并不难理解和计算,时钟频率fosc的倒数1/fosc 即是时钟周期 tosc,即 tosc=1/12MHz=83.333nS(纳秒)。我们又知道,51单片机中,一个机器周期等于12个时钟周期,也就是说 tosc=12*83.333nS=1000nS=1uS。
当然,当我们把晶体换为6MHz时,一个机器周期也变为了2uS。
OK,如上所述,51单片机的指令周期是由若干个机器周期组合而成的。那么就不难理解了,它的指令周期也必然是固定的。也就是说,51单片机指令的执行时间是固定的。比方说,机器周期为1uS时(晶体为12MHz)执行一个乘法指令 mul ab ,那么单片机执行完毕这条指令所需的时间为4*1uS=4uS。为什么用4uS呢?因为,这条指令的机器周期数目是固定的,等于4个机器周期。
在51单片机中,大多数指令的执行周期为1个机器周期(单周期指令)。最长的指令执行周期为4个机器周期(乘、除法指令)。其余的都是2个机器周期的指令(双机器周期),例如控制转移类指令基本上都是双机器周期指令。 |
|