2015-11-06 72 views
0

我一直在閱讀關於8085的程序計數器。這material這裏指出,程序計數器的功能是指向下一個字節將被提取的內存地址。當一個字節(機器碼)被提取時,程序計數器加1以指向下一個存儲單元。 我的問題是如何處理條件,如果指令大小變化。假設當前指令是3個字節,那麼PC應指向當前地址+3。 PC如何知道當前指令的大小? 我是新來的8085,任何幫助將不勝感激。 謝謝程序如何在8085計數器實際工作?

+0

您確定它沒有像RISC體系結構那樣只有相同大小的指令嗎?編輯:沒關係,它有3類基於大小的說明。 – Aaron

+0

@Aaron:不,8080(和追隨者)是典型的CICS機器。對於OP:需要檢查/解碼第一個字節以確定需要讀取的「額外」字節的數量。在實踐中(比如說386等),更新的cics機器實際上以更大的塊(比如4個字節)讀取指令流,然後對它進行解碼。 – joop

+0

@joop如何確定額外的字節主要是我的問題。 – Ravi

回答

1

你引用的材料並沒有特別說明關於這個問題的任何事情 - 它說的是當一個字節被提取時PC增加了,這是正確的(它沒有說沒有多個字節到指令)。

通常情況下,CPU會遞增程序計數器以指向下一條指令。

更確切地說,在指令解碼階段,CPU將讀取指令需要的字節數,並相應增加PC。

+0

但8085有1-3字節的指令大小。 PC如何根據指令知道要指向哪個地址? – Ravi

+0

PC不知道,但CPU確實 - 看到我更新的答案。 –

+0

CPU有內置的表格(或相當的表格),告訴它何時看到指令的第一個字節,是否需要另外一個字節來編碼它,等等。 –