X86アセンブラ
本書では、x86ファミリのマイクロプロセッサ用のアセンブリ言語について扱います。本書の目的は、x86アセンブリでのプログラミング方法、x86プロセッサファミリの歴史、および基本的なアーキテクチャについて説明することです。 「x86」という用語は、1978年に発表されたIntel 8086以降のx86ベースのプロセッサ全体を指します。これには、以下のものが含まれます。
- iAPX 86アセンブリは、16ビットのアーキテクチャであるi8086のアセンブリで、後に80286などのバージョンに継承されました。
- IA-32アセンブリ(一般にx86-32アセンブリとも呼ばれる)は、Intel 80386から始まる32ビットのIntelアーキテクチャであり、16ビットのIntelアーキテクチャ(Intel 8086から80286で使用されたもの)を32ビットに拡張したものです。IA-32は16ビットアーキテクチャとの完全な後方互換性を持っています。
- x86-64、AMD64、またはAMD 64ビット拡張とも呼ばれるものは、32ビットコードをパフォーマンスを損なうことなく実行できるという後方互換性を持っています。
- Intel 64はかつてIA-32eまたはEM64Tと呼ばれており、ほとんどがx86-64と同じです。
本書では、これらの用語は混乱を招かない限り同等の意味で使われます。また、特定の制限事項がある場合や、16ビット、32ビット、64ビットアーキテクチャのいずれかに適用される場合には、その特別な使い方について明確に説明します。
この書籍は、英語版の記事をもとに、日本語版の独自の内容を追加したり、現代的な内容を追加したりしたものです。そのため、英語版の内容とは一致しません。
目次[編集]
構文とアセンブラ[編集]
x86の性質[編集]
x86命令セット[編集]
拡張命令[編集]
x86の詳細[編集]
x86チップセット[編集]
組み込みとインターオペラビリティ[編集]
- WinAPIとのやりとり (Communicating directly with the operating system from the article GAS Syntax above)
- Linuxとのやりとり
- Calling Conventions (from the Embedded Systems book)
- Calling Conventions (from the x86 Disassembly book)
- 標準Cライブラリ
- Inline Assembler (Embedded Systems book)
- Linked Assembler (Embedded Systems book)
翻訳元の「はじめに」[編集]
勉強に使えるサイト一覧[編集]
アセンブラは文献が少ないため、日本語で解説のレベルの高いサイトをいくつか紹介する。
- IA-32 『インテル®アーキテクチャソフトウェア・デベロッパーズ・マニュアル』『上巻:基本アーキテクチャ』
- 『アセンブリ言語の基礎』 - w:Hot Soup Processorの解説サイトだが、アセンブラを解説している。
- 『抄訳メモ/unixwiz.net/Intel x86 Function-call Conventions - Assembly View』
- 『x86 アセンブラ入門 』