该CALL
指令需要 5 个机器周期,即OPCODE-FETCH, MEMORY READ, MEMORY READ, MEMORY WRITE, MEMORY WRITE
. CALL 的 OPCODE-FETCH 周期有 6 个 T 状态来处理 Stack Pointer 的递减。
RET
指令需要 3 个机器周期,OPCODE-FETCH, MEMORY READ, MEMORY READ
即使在这里,微处理器也必须像以前一样将堆栈指针增加两次才能弹出。但是,OPCODE-FETCH 循环只有 4 个 T 状态,这是为什么呢?
至于为什么,我有一个模糊的想法;inCALL
和PUSH
SP 必须首先递减,不像RET
or POP
。FETCH
在周期的最后两个 T 状态中,仅考虑第一个减量。但为什么这需要两个 T 状态。同样,我真的不确定这一点。请帮忙。