3

raxAFAIK x86-64 は、Intel x86 から派生したもの ( 、rcxなど) にr8-と呼ばれる多数の汎用レジスタを追加しr15ます。

なぜ彼らは新しいレジスターにこのような名前を付けたのですか? rfx既存の命名規則に従って, rgx...のように呼ばないのはなぜですか?

4

3 に答える 3

12

CPUレジスタの番号付けは標準であり、ほとんどすべてのプロセッサがそれを行います。しかし、8086 プロセッサは古く、1976 年にはトランジスタの予算が非常に限られていました。アクティブなトランジスタが 20,000 個しかない 16 ビット プロセッサを実装することは非常に困難でした。彼らが削減した 1 つの方法は、レジスタに専用の機能を与えることでした。その時点で、番号ではなく名前を付けて、その使用法を示唆することは理にかなっています. もう 1 つの影響は、8080 プロセッサとの互換性レベルを提供するように設計されたことであり、専用の機能を持つ名前付きレジスタも備えていました。

正反対の設計は Motorola 68000 で、3 年後に設計されたより高度なプロセス技術により、トランジスタの予算が 2 倍になりました。(ほぼ) すべてのレジスタを任意の命令で自由に使用できる、非常に直交する設計。また、以前のデザインとの互換性はありません。番号付きレジスタ (D0 ~ D7 および A0 ~ A7) がありました。

x86 アーキテクチャへの拡張では、R8 から R15、MM0 から MM7、XMM0-15、YMM0-15 などの番号付きレジスタが再び使用されます。

于 2012-10-07T19:17:35.050 に答える