我一直在阅读关于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