【发布时间】:2011-08-11 16:06:30
【问题描述】:
在我正在研究的处理器的文档中说:
可用的操作数寻址模式有隐含、寄存器、立即、直接和寄存器 间接(使用 BC、DE 和 HL 寄存器对作为指向内存的 16 位指针)。
有人可以用外行的方式解释这些寻址模式之间的区别,或者张贴我可以学习的链接吗?
非常感谢。
【问题讨论】:
标签: cpu-architecture addressing operands addressing-mode 8085
在我正在研究的处理器的文档中说:
可用的操作数寻址模式有隐含、寄存器、立即、直接和寄存器 间接(使用 BC、DE 和 HL 寄存器对作为指向内存的 16 位指针)。
有人可以用外行的方式解释这些寻址模式之间的区别,或者张贴我可以学习的链接吗?
非常感谢。
【问题讨论】:
标签: cpu-architecture addressing operands addressing-mode 8085
【讨论】:
这是相当完整的 8080/8085 汇编手册:
[PDF] Intel 8080/8085 Assembly Language Programming
File Format: PDF/Adobe Acrobat
ISIS-II 8080/8085 IAACRO 汇编器操作员手册,9800292。当您激活
汇编器,您可以选择指定多个控件。 ...
http://krchowdhary.com/intel-8085.pdf (5.5 MB)
您需要第 1-15 节(pdf 第 27 页)
【讨论】:
隐含的意思是操作码不需要程序员明确说明源和地址;声明中暗示了它们。例如 LDA 总是加载累加器,累加器是所有 LDA 操作码的隐含目标地址。
Register 表示源或目标是处理器寄存器而不是内存位置。例如 MOV r1,r2 是一个寄存器到寄存器的传输,它不涉及超出操作码的内存获取。
立即表示代码存储中内存中的值,通常是紧跟在操作码之后的值。即:MOV r,n。值加载的内存地址引用是程序计数器。
直接意味着在操作码之后提供内存地址,处理器首先将该内存地址加载到地址寄存器中,然后从该内存位置获取。内存地址引用在操作码之后提供,执行首先需要加载两个字节地址,然后从该位置加载内存值。
间接意味着地址存储在可用于该目的的寄存器之一中。因为它只是一个寄存器到寄存器的传输来加载地址寄存器以获取内存,它比使用直接寻址更快。
【讨论】: