付録B付録B x86-64アーキテクチャ
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アーキテクチャについて簡単に解説する。
B.1 レジスタ
x86-64では次の表で示す、合計16個の整数値を格納可能なレジスタが用意されている。
レジスタ | 用途 |
---|---|
rax |
汎用レジスタ、アキュムレータ |
rbx |
汎用レジスタ、(ベースレジスタ) |
rcx |
汎用レジスタ、カウンタレジスタ ... |
Get 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.