我正在学习英特尔微处理器课程,并阅读微处理器和寄存器,我对微处理器之间的寄存器差异感到困惑。
例如,我知道x86有8个通用寄存器,而x386DX总共有16个寄存器。
除寄存器数量外,两个微处理器寄存器之间的主要区别是什么?
答案 0 :(得分:1)
我认为另外一个区别可能是x86包含一个16位FLAGS寄存器而x386包含一个32位扩展EFLAGS寄存器。
FLAGS表示微处理器的状况及其操作。
答案 1 :(得分:1)
对经过的人进行一点澄清
x86是从architecture到8086的所有CPU范围中的i686 (P6),以及它们的所有克隆和后续产品。
x86_64 (AMD64)也对其进行了扩展,AMD是Intel的x86体系结构的64位版本。英特尔在自己的CPU中将这些扩展名更名为Intel64。不要与IA-64 (Itanium)完全混淆,binary compatible与x86(或x86_64)根本不是i386。
IA-32是x86 CPU的一代。这是第一个实现extensions架构的x86 CPU。因此,它是一个32位CPU,并且具有使二进制文件不向后兼容的扩展,但是它们可以在任何更新的x86 CPU上运行。即使在x86_64 CPU上。
因此,虽然为8086编译的二进制文件应该可以在几乎x86 CPU上运行,但是如果操作系统支持,它们将无法利用所有改进和architectural features。
以下是i386中最著名的registers的列表。
这是reserved keyword in ANTLR v3(来自同一篇文章)。了解从16位到32位的区别。