展开全部
呵呵,有点麻烦,跟时序图结合看好一点。一个机器周期分为6节(s)12拍(p)(即12个完整的方波)
在s1p1下降沿和s4p1下降沿时,都会读取一次ROM——即一个机器周期内读两次ROM。
而取指令的行为就发生这两个时间点上:
单片机执行指令的最小时间单位为一个机器周期,不同的指令会被汇编成不同的机器码,因此占用不同的存储字节,单片机有单字节、双字节和三字节(乘除两条)指令
取指过程如下
单字节单周期指令:s1取回机器码,s4再次读取ROM,由于一个指令还在执行中,因此第二次读取无效(个人理解的是不送指令译码器,信号在指令总线上自然消失,PC不加1)
单字节双周期指令:s1取回第一字节,在s4及下一机器周期的s1和s4读取ROM都无效;
双字节单周期:s1取回指令的第一字节,s4取回第2字节
双字节双周期:s1取回指令的第一字节,s4取回第2字节,下一机器周期的两次读取都无效
三字节双周期:s1取回指令的第一字节,s4取回第2字节,,第二个机器周期的s1取回第3字节,s4读取无效;
四周期指令:就乘法和除法两条,都是单字节指令,很多资料上语焉不详,个人认为只在第一周期的s1取值,s4及连续三个周期的取值都无效
归纳起来就是:指令有几个字节,在执行时间内就有几次读取有效,其余读取无效。
参考:http://www.21ic.com/jichuzhishi/mcu/shixu/2013-02-27/159336.html
在s1p1下降沿和s4p1下降沿时,都会读取一次ROM——即一个机器周期内读两次ROM。
而取指令的行为就发生这两个时间点上:
单片机执行指令的最小时间单位为一个机器周期,不同的指令会被汇编成不同的机器码,因此占用不同的存储字节,单片机有单字节、双字节和三字节(乘除两条)指令
取指过程如下
单字节单周期指令:s1取回机器码,s4再次读取ROM,由于一个指令还在执行中,因此第二次读取无效(个人理解的是不送指令译码器,信号在指令总线上自然消失,PC不加1)
单字节双周期指令:s1取回第一字节,在s4及下一机器周期的s1和s4读取ROM都无效;
双字节单周期:s1取回指令的第一字节,s4取回第2字节
双字节双周期:s1取回指令的第一字节,s4取回第2字节,下一机器周期的两次读取都无效
三字节双周期:s1取回指令的第一字节,s4取回第2字节,,第二个机器周期的s1取回第3字节,s4读取无效;
四周期指令:就乘法和除法两条,都是单字节指令,很多资料上语焉不详,个人认为只在第一周期的s1取值,s4及连续三个周期的取值都无效
归纳起来就是:指令有几个字节,在执行时间内就有几次读取有效,其余读取无效。
参考:http://www.21ic.com/jichuzhishi/mcu/shixu/2013-02-27/159336.html
追问
我们这个就是简答题,很麻烦,,,,你能说得详细点吗??就要过程
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询