August 2021
Intermediate to advanced
384 pages
5h 31m
Japanese
1971年にIntelは4004という4ビットのマイクロプロセッサを発売した。その後、1974年に8ビットマイクロプロセッサの8080を発売し、1978年に16ビットプロセッサの8086を発売した。x86アーキテクチャは8086から拡張され続きてきたアーキテクチャである。8086発表の後、Intelは1985年に32ビットCPUの80386を発表した。しかし、続く64ビット版CPUは、IntelではなくAMDが、x86互換の64ビットCPUアーキテクチャであるAMD64を発表した。
AMD64が登場するまでは、Intelのx86アーキテクチャをAMDが互換CPUとして販売していたが、AMD64登場後は、AMDのAMD64アーキテクチャをIntelが互換CPUとして販売している。x86-64はそれらアーキテクチャを総称した名称であり、x64などとも呼ばれる。x86-64は2020年の現在では、PC、サーバ用途で主流のCPUアーキテクチャであるが、x86から互換性を保ちつつ拡張が続けられてきたため8086の実行バイナリも再コンパイルなしで動作する。実際にはOSやライブラリなどの制約があるため難しい面もあるが、それでも、40年以上も前のコードが動作するというのは凄いことである。本章では、このx86-64アーキテクチャについて簡単に解説する。
x86-64では次の表で示す、合計16個の整数値を格納可能なレジスタが用意されている。
表B-1 x86-64の整数値レジスタ
| レジスタ | 用途 |
|---|---|
rax |
汎用レジスタ、アキュムレータ |
rbx |
汎用レジスタ、(ベースレジスタ) |
rcx |
汎用レジスタ、カウンタレジスタ ... |