Assembly 什么是X索引寄存器?

Assembly 什么是X索引寄存器?,assembly,cpu-architecture,Assembly,Cpu Architecture,我问的是一般情况。我试图理解X索引寄存器在任何微控制器中的用途,因为我必须创建一个虚拟微控制器。MAR和PC之间的这个寄存器有什么区别?感谢各位的回复。MAR是一个实施细节。流水线CPU本身可能没有MAR,或者可能没有单个MAR,特别是如果它有一个可以在同一周期内读写的多端口缓存 在具有名为X的寄存器的体系结构中,X是一个体系结构寄存器,它保持其值,而不管其他什么正在访问内存 e、 g.绝对非索引负载将使用MAR驱动地址总线,但CPU仍需要为X保持相同的值。此外,MAR必须与机器中的物理地址一样

我问的是一般情况。我试图理解X索引寄存器在任何微控制器中的用途,因为我必须创建一个虚拟微控制器。MAR和PC之间的这个寄存器有什么区别?感谢各位的回复。

MAR是一个实施细节。流水线CPU本身可能没有MAR,或者可能没有单个MAR,特别是如果它有一个可以在同一周期内读写的多端口缓存

在具有名为
X
的寄存器的体系结构中,
X
是一个体系结构寄存器
,它保持其值,而不管其他什么正在访问内存

e、 g.绝对非索引负载将使用MAR驱动地址总线,但CPU仍需要为
X
保持相同的值。此外,MAR必须与机器中的物理地址一样宽,但在6502中,
X
只是一个8位寄存器。(因此,您只能从给定的基索引256个字节)

程序计数器通常不能直接访问,除非通过PC相对寻址模式,或者调用指令将返回地址存储在某个地方。和编写PC。但在某些方面,它也是一个实现细节;流水线CPU不一定只有一个PC寄存器。但是,标量顺序管道将在获取阶段有效地拥有一台PC。(或者非流水线CPU当然会有一台PC。)

作为加载下一条指令的机器代码的一部分,code fetch将PC复制到MAR


带有
X
寄存器的体系结构包括

  • ,可用于间接和绝对索引寻址模式
  • (索引X),由2个8位的半部分组成。有关6502和Z80中的寄存器和寻址模式如何不映射到可以用整数索引的指针C模型的一些有趣细节,请参阅。而且不容易支持堆栈相对寻址模式,这使得递归很困难
  • 具有IX和IY 16位索引寄存器
  • AVR(X是
    r27:r26
    的16位串联):。它不仅仅是一个索引

8080有HL,而不是X。

请指定体系结构。MAR是一个实现细节。在具有名为
X
的寄存器的体系结构中,它是一个体系结构寄存器,无论其他什么正在访问内存,它都会保持其值。您好,谢谢您的回复,Peter Cordes,您介意更简单地解释一下吗?我只对微控制器有一个基本的了解,我只想知道X索引寄存器在我的虚拟微控制器中会做什么,它只有一个累加器、PC、X索引寄存器和零标志。谢谢。@ZalodeMolina:IDK如何回答这个问题,而不需要编写一本完整的教科书或给你一个完整的CPU设计。您的
X
寄存器可以执行您决定它可以执行的任何操作,例如,您可能支持一条
add X
指令,允许您将其添加为。可能您只能将其用作带有特殊加载指令的指针,或者任何带有内存操作数的指令都可以选择使用
[X+something]
作为寻址模式。