X86アセンブラ

出典: フリー教科書『ウィキブックス(Wikibooks)』
移動: 案内検索

メインページ > 工学 > 情報技術 > プログラミング > X86アセンブラ

本書では、x86ファミリのマイクロプロセッサ用のアセンブリ言語におけるプログラミングについて扱う。 本書の目的は、x86アセンブリでどのようにプログラミングをするか、 x86プロセッサファミリの歴史、x86プロセッサファミリの基本的なアーキテクチャについて教えることである。

x86と言う時、私たちはx86ベースのプロセッサの全ての範囲を指すこととする(1987年に発表された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ビットアーキテクチャのいずれかについて適用されるか、制限事項がある場合には、混乱を避けるための特別に注意を与えるものとする。

目次

はじめに
基本的なFAQ

x86の基礎

x86ファミリ
x86アーキテクチャとレジスタの説明
コメント
16、32、64ビット
組み込みデータ型

x86命令セット

x86の命令
データ転送命令
制御転送命令
算術演算命令
論理演算命令
シフト命令とローテート命令
その他の命令
x86の割り込み

構文とアセンブラ

x86アセンブラ
GAS構文
MASM構文
HLA構文
FASM構文
NASM構文

拡張命令

拡張命令
浮動小数点
MMX
SSE
AVX、AVX2、FMA3、FMA4
3DNow!

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)

参考文献

参考文献