64ビットアセンブラ入門
64ビットCPUの基本構造もやさしく解説
- 著者 北山 洋幸
- 判型 B5変型判、256頁
- 本体価格 3,200円
- ISBN 978-4-87783-361-9
2014年12月10日 初版第1刷発行
本書について
本書の目的は、高級言語しか利用したことのないソフトウェアエンジニアに、アセンブリ言語の入門を理解してもらうことです。その延長上でCPU自体の動作についても、理解できるでしょう。アセンブリ言語をひととおり理解しようとすると大変な労力がかかり、必要に迫られていない限り途中で挫折するでしょう。そこで、本書はリファレンス的にアセンブリ命令のすべてを網羅して理解するのではなく、比較的簡単な命令を理解することによって、アセンブリ言語、ひいてはCPUがどのようにプログラムを解釈・実行するかを理解していただくことにつとめました。
本書はC/C++言語から容易にアセンブリ言語を利用できること、そして64ビットに対応したアセンブリ言語に着目します。CPUやアセンブリ言語を興味深く理解していただけるように、リファレンスよりアプリケーションに重きを置きます。退屈になりがちなアセンブリ言語の習得を、興味深い方法で解説します。近年のCPUはベクター処理に適したSIMD命令を搭載していますので、それらの解説も若干加えました。
本書は、以下のような人を対象読者としています。
●低水準言語が、どのようなものか体験したい人
●アセンブリ言語の初歩を理解したい人
●アセンブリ言語とC++言語を融合して、性能の高いプログラムの開発を目指したい人
●SIMDなどベクター処理命令を理解したい人
是非、本書を参考に現代のCPUやアセンブリ言語の実際を理解し、コンピュータの基礎の理解や、高性能なプログラムの開発に役立ててください。微力ながら本書が学習の助けになれば幸いです。
目 次
- 第1章 はじめてのアセンブラ
- 1.1 CPU概論
- 1.2 高水準言語と低水準言語
- 1.3 低級言語(低水準言語)
- 1.4 高級言語(高水準言語)
- 1.5 簡単な代入
- 1.6 プロジェクト作成
- 第2章 はじめての64ビットアセンブラ入門
- 2.1 64ビットアセンブラ入門
- 2.2 インラインアセンブラが使えない
- 2.3 ファイル構成
- 2.4 アセンブリ言語で関数を作る
- 2.5 x64を追加
- 第3章 64ビットアセンブラプログラミングの基礎
- 3.1 引数と返却値
- 3.2 レジスタ一覧と、保存しなくてもよいレジスタ
- 3.3 x64のレジスタ
- 3.4 代入
- 3.5 代入とサイズ
- 3.6 PTR演算子
- 3.7 配列へアクセス
- 3.8 short型配列へアクセス
- 3.9 値を返す関数
- 第4章 算術命令
- 4.1 加算と減算
- 4.2 乗算と除算
- 4.3 インクリメントとデクリメント
- 第5章 論理命令
- 第6章 シフトと回転命令
- 6.1 左シフト
- 6.2 右シフト
- 6.3 回転(ローテート)
- 第7章 制御命令
- 7.1 無条件ジャンプ
- 7.2 条件ジャンプ・等しいか
- 7.3 条件ジャンプ・大小比較
- 7.4 繰り返し
- 7.5 繰り返しで一次元配列を加工
- 第8章 レジスタ保護とスタック
- 8.1 レジスタの保存・復活を行う単純な例
- 8.2 スタックフレームを使用する例
- 第9章 応 用
- 9.1 配列内の最小値・最大値を探すプログラム
- 9.2 平均値
- 9.3 移動平均
- 9.4 英大文字を小文字へ変換
- 9.5 メモリのコピー
- 9.6 文字列長を求める
- 9.7 文字の並びを逆転
- 9.8 ビットの並びを逆転
- 9.9 浮動小数点算術命令
- 第10章 ベクター命令
- 10.1 配列同士の加算
- 10.2 配列の飽和加算
- 10.3 配列同士の減算
- 10.4 単精度浮動小数点配列同士の演算
- 付録 開発環境
- Visual Studio Express 2013 for Windows Desktopの環境