X86アセンブラ
メインページ > 工学 > 情報技術 > プログラミング > X86アセンブラ
- ※ 冒頭文のリンク先はウィキペディア。(wikibooks内ではない)
本書では、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 『インテル®アーキテクチャソフトウェア・デベロッパーズ・マニュアル』『上巻:基本アーキテクチャ』 )
- 『アセンブリ言語の基礎』(たぶん日本産ゲームエンジン?の)「HSP」の解説サイトだが、初心者むけには十分にアセンブラを解説している。
- 『抄訳メモ/unixwiz.net/Intel x86 Function-call Conventions - Assembly View』
- 『x86 アセンブラ入門 』
また、コード例は無いが、情報が比較的によくマトまっているサイトがある。
- ※ 調査中