【发布时间】:2013-12-12 16:25:36
【问题描述】:
过去几周我一直在阅读有关汇编编程和计算机体系结构的内容,但我遇到了几个我似乎无法找到答案的问题。
在阅读 CPU 构建等内容时,您会了解 MAR 和 MDR 寄存器,以及它们如何控制内存和 CPU 之间的数据流。
另外,在汇编语言中(这里指IA-32),我们了解到x86架构有8个通用寄存器(EAX、ESP、EDI等)、6个段寄存器和2个控制寄存器(1个标志寄存器和指令指针)。总共有 16 个寄存器。
汇编语言指南中提到的寄存器都没有提到 MDR 和 MAR。
问题如下:
MAR / MDR 如何适应汇编语言的寄存器列表?
x86 实际上有超过 16 个寄存器吗?
ARM/MIPS 有多少个寄存器?
非常感谢您。
【问题讨论】:
-
大部分是 x86 registers: MBR/MDR and instruction registers 的副本。我的回答集中在现代 x86 不能有单个 MDR/MAR 的事实,因为这对于具有许多加载和存储缓冲区的超标量流水线微体系结构没有意义。
标签: assembly x86 computer-architecture