当前位置: 代码迷 >> 单片机 >> 指令周期机器周期,该如何处理
  详细解决方案

指令周期机器周期,该如何处理

热度:174   发布时间:2016-04-28 16:33:37.0
指令周期机器周期
在51单片机中,里面的指令周期概念和机器周期概念我有些不明白。指令周期指的是执行一条C语言指令所需时间,还是一条汇编语言所花的时间,还是执行一条机器指令所花的时间?
  机器周期:机器周期就是指执行一条机器指令所花的时间吗?
  我听说过一个概念:多周期指令,好像指的是一个指令周期包含多个机器周期,难道意思就是一条指令包含多条机器指令吗?
  这些概念对我来说很模糊,恳请热心的朋友解答一下,不胜感激!


------解决方案--------------------
机器周期:机器周期就是指执行一个单一的处理动作的周期(可能包括:取指,译码,执行等)

指令周期:指机器完成这条指令需要的机器周期

比如:X86里的MOV指令,它是单周期指令,通常说是只用一个机器周期就能完成的指令。也就是一个机器周期内,它就能被取指,译码,执行完成

像跳转指令,JMP,由于它要跳转到的目的地址要占多字节,所以需要多次取指,这样就造成了它不能在一个机器周期内完成,需要多个机器周期。我是这么理解的

像乘法指令等多周期指令,就需要多个机器周期方能执行完成

//印象是这个样子,丢不看书了,如果不给力的,大伙指正
------解决方案--------------------
纯概念的东西不用了解的这么相信。要是汇编的话一般的单指令的执行一句就是1us。晶振是12M的,双指令的执行一句就是2us,知道这个就行了,你现在时使用单片机,不是设计单片机,知道哪些了没啥用!我现在都有时候还搞不明白呢!不耽误你调试!!!!
------解决方案--------------------
网上有专文讲解
------解决方案--------------------
51单片机的入门书里都有详细的介绍。
把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。
取出并执行一条指令的时间叫指令周期,它可能有几个机器周期组成。
------解决方案--------------------
机器周期:完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期,比如NOP指令。

指令周期:单片机有的指令执行的快有的慢,如乘法MUL和除法DIV执行的需要四个机器周期,则说MUL的指令周期是四个机器周期,这也就是你说的多周期指令。并不是一条指令包含多条机器指令,而是有的指令执行的较慢,一个MUL指令的执行时间是NOP指令的四倍。

------解决方案--------------------
指令周期CPU从取出指令到完成该条指令花费的时间。
机器周期是CPU完成一个独立的操作,51系列单片机的采用的是同步控制方式,因此他有固定的机器周期。
51中的一个指令周期包含1,2,4条机器周期三种形式。
以延时为例
MOV R6 ,#02H ;单机器周期
D1: MOV R7,#0FFH ;单机器周期
D2: DJNZ R7,D2 ;双机器周期
DJNZ R6,D1 ;双机器周期

 延时 1+2*(1+2*255+2)
  相关解决方案