我一直在閱讀關於8085的程序計數器。這material這裏指出,程序計數器的功能是指向下一個字節將被提取的內存地址。當一個字節(機器碼)被提取時,程序計數器加1以指向下一個存儲單元。 我的問題是如何處理條件,如果指令大小變化。假設當前指令是3個字節,那麼PC應指向當前地址+3。 PC如何知道當前指令的大小? 我是新來的8085,任何幫助將不勝感激。 謝謝程序如何在8085計數器實際工作?
回答
你引用的材料並沒有特別說明關於這個問題的任何事情 - 它說的是當一個字節被提取時PC增加了,這是正確的(它沒有說沒有多個字節到指令)。
通常情況下,CPU會遞增程序計數器以指向下一條指令。
更確切地說,在指令解碼階段,CPU將讀取指令需要的字節數,並相應增加PC。
但8085有1-3字節的指令大小。 PC如何根據指令知道要指向哪個地址? – Ravi
PC不知道,但CPU確實 - 看到我更新的答案。 –
CPU有內置的表格(或相當的表格),告訴它何時看到指令的第一個字節,是否需要另外一個字節來編碼它,等等。 –
- 1. clojure程序/編譯器/解釋器如何實際「工作」?
- 2. 如何計算運行C++程序的實際操作次數?
- 3. CSS選擇器如何實際工作?
- 4. arguments.callee如何實際工作?
- 5. CompilationRelaxations.NoStringInterning如何實際工作?
- 6. volatile如何實際工作?
- 7. FBConnect如何實際工作?
- 8. JPA如何實際工作?
- 9. ReadAsMultipartAsync如何實際工作?
- 10. UpdatePanel如何實際工作?
- 11. 8085算術程序
- 12. 實際的鬧鐘應用程序是如何工作的?
- 13. IPython如何?操作員實際工作?
- 14. 引導加載程序在實際的計算機上無法正常工作
- 15. atan2如何工作?實際計算哪個角度?
- 16. runloop實際上是如何工作的
- 17. rake db :: migrate如何實際工作
- 18. gZip和DEFLATE如何實際工作?
- 19. 如何獲得RegistrationBuilder實際工作?
- 20. JPanel實際上如何工作?
- 21. Math.tan(x)如何實際工作? (Javascript)
- 22. .NET ExecutionContext如何實際工作?
- 23. applicationName屬性如何實際工作?
- 24. git clone如何實際工作
- 25. WebResources.axd或ScriptResources.axd如何實際工作?
- 26. 如何繪製(_ rect:CGRect)實際工作?
- 27. 特質特化如何實際工作?
- 28. Eventbug實際上是如何工作的
- 29. JUnit TestCase功能如何實際工作?
- 30. 數組在javascript中如何實際工作
您確定它沒有像RISC體系結構那樣只有相同大小的指令嗎?編輯:沒關係,它有3類基於大小的說明。 – Aaron
@Aaron:不,8080(和追隨者)是典型的CICS機器。對於OP:需要檢查/解碼第一個字節以確定需要讀取的「額外」字節的數量。在實踐中(比如說386等),更新的cics機器實際上以更大的塊(比如4個字節)讀取指令流,然後對它進行解碼。 – joop
@joop如何確定額外的字節主要是我的問題。 – Ravi