【问题标题】:How many Machine Cycles are there in Jump Statements of 8085?8085的跳转语句有多少个机器周期?
【发布时间】:2013-09-05 06:50:59
【问题描述】:

如果要检查的条件满足,8085 中的任何跳转语句都需要哪些机器周期?对于不满足的情况?

编辑:我知道号码。我想知道那些机器周期是什么。第一个是 Opcode Fetch,剩下的呢?

【问题讨论】:

  • 应该有一个“使用说明书”来解释这个。
  • 你可能有 8085 吗?
  • @JonathonReinhart 是的,先生,我愿意。
  • @sharptooth 说明手册没有说明这一点。

标签: assembly 8085


【解决方案1】:

J condition不满足时,循环是

  1. Opcode fetch (4 T states)
  2. Memory read (3 T states) 指定的低字节,同时检查标志条件。

如果条件不满足,则processor ends这两个机器周期后的这条指令周期和4+3 = 7 T states.

【讨论】:

    【解决方案2】:

    根据this instruction set reference,如果不采用分支,8085 上的条件分支将采用 9 个 T 状态(2 M 周期),如果采用分支,则采用 18 个 T 状态(5 M 周期) .

    据我所知,T 状态等于 8085 上的一个时钟周期。一个 M 循环由几个(3 到 6 个)T 状态组成。 M 周期的示例是“Opcode Fetch”(它始终是每条指令的第一个 M 周期); “内存读取”和“内存写入”。
    您可以阅读有关 8085 的状态和周期的更多信息in this document

    【讨论】:

      【解决方案3】:

      当它满足条件时,8085A 上的周期为:

      JNZ 9050H

      • 获取操作码
      • 内存读取:获取低位地址字节
      • 内存读取:获取高位地址字节

      4+3+3 = 3 个机器周期中的 10 个 T 状态

      我来到这里是因为我自己正在寻找条件不满足时的循环。

      【讨论】:

        【解决方案4】:

        如果条件满足10T个状态,否则7T个状态,条件跳转。 在无条件跳转 JMP 的情况下,它总是 10T 状态

        【讨论】:

        【解决方案5】:

        我们以'JNZ 16-bit address'指令为例。 以及以下代码以供理解:

        INR B           // B=03 H 
        JNZ C200 H 
        

        这里条件为真,因为寄存器 B 不为零。因此有 10 个 t 状态。

        如果寄存器 B =00 H,则 JNZ 条件为假,因为它为零。因此有 7 个 t-状态。

        正确:OF + MR + MR = 4 +3+3= 10 t 个状态
        错误:OF + MR = 4+3 =7 t 个状态

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-24
          • 2021-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-21
          相关资源
          最近更新 更多