X86アセンブラ
本書では、x86ファミリのマイクロプロセッサ用のアセンブリ言語におけるプログラミングについて扱う。 本書の目的は、x86アセンブリでどのようにプログラミングをするか、 x86プロセッサファミリの歴史、x86プロセッサファミリの基本的なアーキテクチャについて教えることである。
x86と言う時、私たちはx86ベースのプロセッサの全ての範囲を指すこととする(1978年に発表されたIntel 8086以来のもの)。 これには、次のものが含まれる。
- IA-32アセンブリ、これは一般にx86-32アセンブリとも呼ばれるもの(Intel 80386に始まるIntelアーキテクチャ32ビット)。これは、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 アセンブラ入門 』