日向 俊二 著
本書は、アセンブリ言語のプログラミングについて、わかりやすいサンプルを使って実習しながら、コンピュータサイエンスの基礎知識からハードウェア知識を含む、コンピュータとプログラミングに対する真の理解に必要な知識の習得を目的としています。
アセンブリ言語のニモニックは、コンピュータの心臓部であるプロセッサが提供する各命令に対応するものです。また、使用するOSやアセンブラの種類によってアセンブリ言語プログラミングの書き方や内容は若干異なります。つまり、プロセッサ、OS、アセンブラの種類ごとにアセンブリ言語は異なるわけです。
本書では、最も普及しているWindowsベースのPC上で容易に学習できるように、x86ファミリーのプロセッサで実行可能なアセンブリ言語プログラムを取り上げています。本書の大部分は、フリーのアセンブラ「NASM」を前提として書かれています。しかし、ほかの種類のCPU、OS、アセンブラでのアセンブリ言語プログラミングも視野に入れて解説しているので、本書の内容をマスターすれば、さまざまな状況にすぐ応用できるようになるでしょう。(本書「はじめに」より抜粋)
第1章 アセンブリ言語入門
1.1 実行されるプログラム
1.2 単純なアセンブリ言語プログラム
1.3 アセンブリ言語プログラム
1.4 アセンブラとアセンブリ言語
この章の理解度チェック
第2章 数とデータ
2.1 値の表し方
2.2 ニブル、バイト、ワード
2.3 符号
2.4 実数
この章の理解度チェック
第3章 ハードウェアの基礎
3.1 基本的な要素
3.2 システムバス
3.3 メモリ
3.4 レジスタ
この章の理解度チェック
第4章 データの移動
4.1 移動命令
4.2 ポップとプッシュ
4.3 ロードとストア
この章の理解度チェック
第5章 分岐とサブルーチン
5.1 ジャンプ
5.2 ループ
5.3 サブルーチン
この章の理解度チェック
第6章 入出力
6.1 アセンブリ言語による入力
6.2 OSのシステムコール
6.3 ポートからの入力
6.4 ポートからの出力
この章の理解度チェック
第7章 演算
7.1 加算
7.2 減算
7.3 乗算
7.4 除算
7.5 インクリメントとデクリメント
7.6 比較
7.7 浮動小数点数の演算
この章の理解度チェック
第8章 ビットとフラグの操作
8.1 シフト
8.2 ローテート
8.3 ビットの演算命令
8.4 フラグの操作
この章の理解度チェック
第9章 ストリング命令
9.1 ストリング
9.2 ストリングのロード
9.3 ストリングのストア
9.4 ストリングの移動
9.5 ストリングの比較
9.6 ストリングのスキャン
この章の理解度チェック
第10章 その他の要素
10.1 さまざまな命令
10.2 その他の命令
10.3 プリフィックス
10.4 演算子
10.5 擬似命令、マクロ、ディレクティブ
この章の理解度チェック
第11章 インラインアセンブラ
11.1 高級言語とアセンブリ言語
11.2 Visual C++のインラインアセンブラ
11.3 Delphi(Pascal)のインラインアセンブラ
11.4 gccのインラインアセンブラ
この章の理解度チェック
第12章 高度な話題
12.1 セグメンテーション
12.2 さまざまなプログラム
12.3 最適化
12.4 クロスプラットホーム開発
この章の理解度チェック
付録A NASMの使い方
付録 B アセンブラとデバッガ
付録 C 命令セットリファレンス
付録 D NASMエラーメッセージとトラブル対策
付録 E 理解度チェックの解答
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 007 表1.1 「6」の列 |
4刷 | 未 |
|
2008.11.07 | ||||||
1刷 | 025 表2.6の1行上 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 026 表2.7のキャプション |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 029 図2.9の計算式の符号 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 034 「●eまたはEを使い、仮数部と指数部に分けて表記する」の例の1~2行目 |
5刷 | 未 |
|
2009.05.29 | ||||||
1刷 | 047 下から2行目 |
6刷 | 未 |
|
2008.11.11 | ||||||
1刷 | 066 図4.4のキャプション |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 066 図4.5のキャプション |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 075 5行目 |
4刷 | 未 |
|
2008.11.10 | ||||||
1刷 | 091 図6.2のキャプション |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 112 リスト7.4の6行上 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 121 表7.1のSFフラグの意味 |
2刷 | 未 |
|
2007.02.20 | ||||||
1刷 | 124 表7.2の2行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 133 3行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 135 図8.6のローテート前のビットの図 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 137 リスト8.6の6行上 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 156 下から4行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 167 コードの2~3行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 178 5行目と「■ディレクティブ」の3行上(2か所) |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 214 下から4行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 237 「■AAS」の機能 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 245 DIV命令の解説中の箇条書き |
6刷 | 未 |
|
2007.11.27 | ||||||
1刷 | 264 2行目 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 265 IDIV命令の解説中の箇条書きの2つ目と3つ目 |
3刷 | 未 |
|
2007.11.27 | ||||||
1刷 | 292 「■SUB」の機能 |
6刷 | 未 |
|
2013.03.12 | ||||||
1刷 | 296 下から2行目 |
6刷 | 未 |
|
2013.03.12 |