我正在学习英特尔微处理器课程,并阅读有关微处理器和寄存器的内容,我对微处理器之间的寄存器差异感到困惑。
例如,我知道x86有8个通用寄存器,而x386DX有16个寄存器。
除寄存器数量外,两个微处理器寄存器的主要区别是什么?
我认为另一个区别可能是x86包含一个16位FLAGS寄存器而x386包含一个32位扩展EFLAGS寄存器。
FLAGS表示微处理器的状态及其操作。
对于经过的人来说只是一点澄清
x86是从architecture到8086以及所有克隆和继承者的整个CPU系列的i686 (P6)。
它也被x86_64 (AMD64)扩展,这是AMD的64位版本的Intel的x86架构。英特尔已在自己的CPU中将这些扩展名重新命名为Intel64。不要与IA-64 (Itanium)混淆,binary compatible不是i386与x86(或x86_64)。
IA-32是x86 CPU的一代。这是第一个实现了extensions架构的x86 CPU。因此它是一个32位CPU,它具有使二进制文件不向后兼容的扩展,但它们可以在任何较新的x86 CPU上运行。即使在x86_64 CPU上也是如此。
因此,虽然为8086编译的二进制文件应该在几乎x86的CPU上运行,但如果操作系统支持,它们将不会利用所有的改进和architectural features。
这是i386最值得注意的registers列表。
这里是qazxswpoi(来自同一篇文章)。了解从16位到32位的差异。