Last Update 2018/12/06

PC/ATなどで使われている80x86のアセンブラを習得
x86アセンブラ入門

大貫 広幸 著
B5判 304ページ
定価2,420円(税込)
JAN9784789833424
2006年1月1日発行
[絶版2012.12.13] x86アセンブラ入門
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 本書は,PC/ATから組み込み機器まで幅広く使われているx86 CPUのアセンブラについて解説します.x86は20年以上の歴史を持つCPUですが,上位互換性があるため,初代8086用のプログラムを最新のPentiumDで動作させることも可能です.さらに時代に合わせ,32ビット化,FPU機能の内蔵,SIMD命令などさまざまな拡張が行われています.
 そこで本書では,x86の基本から拡張機能,そしてC言語とアセンブラをリンクして使う方法など,x86アセンブラについて詳細な解説を行います.

目次

第1章 アセンブラとは何か
 1.1 CPUとアセンブリ言語
 1.2 プログラム開発におけるアセンブリ言語

第2章 x86系CPUの基礎知識
 2.1 x86系CPUの歴史
 2.2 アドレスと仮想記憶のサポートについて
 2.3 x86系CPUが直接扱うデータの種類
 Column 2の補数とは

第3章 x86系32ビットCPUのレジスタ
 3.1 x86系32ビットCPUのレジスタの分類
 3.2 アプリケーション・プログラムで使用するレジスタ群
 3.3 命令ポインタとフラグ・レジスタの使い方
 3.4 浮動小数点演算ユニットのレジスタの種類と使い方
 3.5 システム・レジスタの種類

第4章 Windows用のアセンブラMASMとGNUのアセンブラgasの命令および使い方
 4.1 x86系CPU用アセンブラの標準仕様
 4.2 Windows用のアセンブラMASMの特徴
 4.3 GNUのアセンブラgasの特徴

第5章 WindowsのアセンブラMASMとLinuxのアセンブラgasの構文
 5.1 MASMのソース・ファイルの構成
 5.2 gasのアセンブラのソース・ファイルの構成
 5.3 x86系CPUのアドレッシング・モー
 5.4 アセンブラとアドレッシング・モード

第6章 MASMの操作方法とソース・ファイルの基本的な構成
 6.1 Windowsのプログラム開発におけるMASMの使われ方
 6.2 MASMを使ったアセンブル方法
 6.3 アセンブリ言語で書かれたソース・ファイルの基本的な構成

第7章 MASMの定数,定数式,データ定義のディレクティブ
 7.1 定数と定数式について
 7.2 データ定義のディレクティブとは何か

第8章 gasの操作方法とソース・ファイルの基本的な構成
 8.1 gasのアセンブラの特徴
 8.2 gasでのアセンブラ・プログラムのアセンブル方法
 8.3 gasにおけるソース・ファイルの基本的な構成

第9章 gasの定数,式,データ定義のディレクティブ
 9.1 定数と式の種類
 9.2 gasにおけるデータ定義のディレクティブ

第10章 x86系CPUのデータ転送命令
 10.1 32ビットx86系CPUの命令の種類
 10.2 整数データ転送命令の記述のしかた
 10.3 データ転送命令のアセンブラ記述
 10.4 i486およびPentium以降で使用できるデータ転送命令

第11章 x86系CPUの算術命令
 11.1 2進算術命令について
 11.2 2進算術命令の加算命令
 11.3 2進算術命令の減算命令
 11.4 2進算術命令の乗除算命令
 11.5 10進算術命令について

第12章 x86系CPUのビット,フラグ操作命令
 12.1 論理演算
 12.2 シフト命令とローテート命令
 12.3 ビット命令とバイト命令
 12.4 フラグ制御命令

第13章 x86系CPUの制御転送命令
 13.1 プログラムの実行を制御する命令の種類
 13.2 ジャンプ命令(JMP,Jcc)の種類
 13.3 ループ命令(LOOP,LOOPcc)の種類
 13.4 コール命令(CALL)の種類
 13.5 リターン命令(RET)の種類
 13.6 割り込み(例外)を発生させる命令(INT,INT 3,INTO,BOUND)と割り込み(例外)からのリターン命令(IRET)
 13.7 スタック・フレームの作成と解放を行う命令(ENTER,LEAVE)

第14章 x86系CPUでバイト列を扱うストリング命令群
 14.1 バイトストリングを転送,比較,スキャンするストリング命令

第15章 x86系CPU自体を制御するシステム命令
 15.1 システム命令の種類と機能

第16章 x86系CPUのFPU命令
 16.1 CPUとFPUの関係
 16.2 FPU命令が扱うデータ
 16.3 FPUのレジスタ構成とその役割
 16.4 FPU命令は6種類

第17章 x86系CPUのSIMD命令(1) MMX整数演算命令
 17.1 SIMD命令とは
 17.2 MMX命令の使用方法
 17.3 MMX命令の各命令の動作
 Column 1 CPUID命令でCPUがサポートする機能を調べる
 Column 2 MMXレジスタに定数をセットする方法

第18章 x86系CPUのSIMD命令(2) ストリーミングSIMD拡張SSE/SSE2命令
 18.1 SSE/SSE2で追加されたSIMD命令
 18.2 SSE/SSE2命令の各命令の動作
 18.3 SSE/SSE2命令の使い方
 18.4 OSとSIMD命令の関係

第19章 アセンブラを使いこなすための基礎知識とC言語からのアセンブラの使用方法・MASM編
 19.1 アセンブラMASMを使いこなすために最低限必要な知識
 19.2 Visual C++のためのMASMによるアセンブラ・サブルーチンの作成方法
 19.3 Visual C++のインライン・アセンブラの使い方

第20章 アセンブラを使いこなすための基礎知識とC言語からのアセンブラの使用方法・gas編
 20.1 アセンブラgasを使いこなすために最低限必要な知識
 20.2 gccのためのgasによるアセンブラ・サブルーチンの作成方法
 20.3 GCCのインライン・アセンブラの構文
 20.4 GCCのインライン・アセンブラの使用例
 Column SSE3命令とEM64Tの64ビット命令について