独習アセンブラ(日向 俊二)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 独習アセンブラ

独習アセンブラ


形式:
書籍
発売日:
ISBN:
9784798109558
定価:
3,740(本体3,400円+税10%)
仕様:
B5変・352ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
独習
本書籍には新版があります
独習アセンブラ 新版

x86ファミリー対応

本書は、アセンブリ言語のプログラミングについて、わかりやすいサンプルを使って実習しながら、コンピュータサイエンスの基礎知識からハードウェア知識を含む、コンピュータとプログラミングに対する真の理解に必要な知識の習得を目的としています。
アセンブリ言語のニモニックは、コンピュータの心臓部であるプロセッサが提供する各命令に対応するものです。また、使用する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 理解度チェックの解答

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2013年03月12日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 007
表1.1 「6」の列
4刷
「2」の行……c 「3」の行……b
「2」の行……b 「3」の行……c

文字コード62hは「b」、63hは「c」です。
2008.11.07
1刷 025
表2.6の1行上
6刷
表2.6に示すBDC表現を使って
表2.6に示すBCD表現を使って
2013.03.12
1刷 026
表2.7のキャプション
6刷
表2.7 16進数の例
表2.7 BCD表現の例
2013.03.12
1刷 029
図2.9の計算式の符号
6刷
  100000000
00000101
-------------
11111011
  100000000
00000101
-------------
11111011
2013.03.12
1刷 034
「●eまたはEを使い、仮数部と指数部に分けて表記する」の例の1~2行目
5刷
12345e1 ……………実数の値は12.345
12345e2 ……………実数の値は123.45
.12345e2……………実数の値は12.345
.12345e3……………実数の値は123.45
2009.05.29
1刷 047
下から2行目
6刷
セグメントレジスタといいます。
セグメントレジスタといいます。なお、[DS:SI]という表記はデータセグメント(DS)のオフセットSIのメモリアドレスを表します。

補足いたします。
2008.11.11
1刷 066
図4.4のキャプション
6刷
図4.4 LHAFの動作
図4.4 LAHFの動作
2013.03.12
1刷 066
図4.5のキャプション
6刷
図4.5 LHAFの動作
図4.5 SAHFの動作
2013.03.12
1刷 075
5行目
4刷
(文字列"Hello, assembler"と、CF=改行、LF=復帰)
(文字列"Hello, assembler"と、CR=改行、LF=復帰)
2008.11.10
1刷 091
図6.2のキャプション
6刷
図6.2 I/Oと入出力
図6.2 I/Oポートを使う方式とメモリマップドI/O方式
2013.03.12
1刷 112
リスト7.4の6行上
6刷
この引き算でソース(引かれる数)よりディスティネーション(引く数)が大きい場合は、
この引き算でソース(ここから値を引く数)よりディスティネーション(引かれる数)が小さい場合は、
2013.03.12
1刷 121
表7.1のSFフラグの意味
2刷
SF  1  第1オペランドが大きい
SF  0  第1オペランドが小さい
SF  1  結果が負である
SF  0  結果が正である
2007.02.20
1刷 124
表7.2の2行目
6刷
F2XM1  2x-1の計算(Calculate 2x-1
F2XM1  2x-1の計算(Calculate 2x-1
2013.03.12
1刷 133
3行目
6刷
(28h='(')
(28h='('
2013.03.12
1刷 135
図8.6のローテート前のビットの図
6刷
00001101
00001011
2013.03.12
1刷 137
リスト8.6の6行上
6刷
ror    al, 1
ror    dl, 1
2013.03.12
1刷 156
下から4行目
6刷
■MOVBW
■MOVSWとMOVSD
2013.03.12
1刷 167
コードの2~3行目
6刷
mov    ah, 02    ; 文字出力
int 21h ; 割込み21hを発生させる=文字を出力する
mov    ah, 02    ; 文字出力
int 21h ; 割込み21hを発生させる=文字を出力する
2013.03.12
1刷 178
5行目と「■ディレクティブ」の3行上(2か所)
6刷
mov    ah, 02    ; 文字出力
mov    ah, 02    ; 文字出力
2013.03.12
1刷 214
下から4行目
6刷
次のようにします。
次のようにします(64ビットWindowsではcomファイルはサポートされていません)

補足いたします。
2013.03.12
1刷 237
「■AAS」の機能
6刷
除算後のアスキー補正(ASCII Adjust AL After Substraction)
減算後のアスキー補正(ASCII Adjust Substraction)
2013.03.12
1刷 245
DIV命令の解説中の箇条書き
6刷
● DIV reg/mem8では、AXが指定されたオペランドによって除算されます。商はALに、残りはAHに保存されます。 ● DIV reg/mem16では、DX:AXが指定されたオペランドによって除算されます。商はDXに、残りAXに保存されます。 ● DIV reg/mem32では、EDX:EAXが指定されたオペランドによって除算されます。商はEDXに、残りEAXに保存されます。
● DIV reg/mem8では、AXが指定されたオペランドによって除算されます。商はALに、余りはAHに保存されます。 ● DIV reg/mem16では、DX:AXが指定されたオペランドによって除算されます。商はAXに、余りDXに保存されます。 ● DIV reg/mem32では、EDX:EAXが指定されたオペランドによって除算されます。商はEAXに、余りEDXに保存されます。

商と余りを保存するレジスタについては、第3刷で訂正済みです。
2007.11.27
1刷 264
2行目
6刷
機能:Log2(X)もしくはLog2(X+1)のY倍の計算
機能:Log2(X)もしくはLog2(X+1)のY倍の計算
2013.03.12
1刷 265
IDIV命令の解説中の箇条書きの2つ目と3つ目
3刷
● IDIV reg16/mem16では、指定されたオペランドでDX:AXが除算されます。商はDXに、余りはAXに保存されます。 ● IDIV reg32/mem32では、指定されたオペランドでEDX:EAXが除算されます。商はEDXに、余りはEAXに保存されます。
● IDIV reg16/mem16では、指定されたオペランドでDX:AXが除算されます。商はAXに、余りはDXに保存されます。 ● IDIV reg32/mem32では、指定されたオペランドでEDX:EAXが除算されます。商はEAXに、余りはEDXに保存されます。
2007.11.27
1刷 292
「■SUB」の機能
6刷
機能:整数の除算(Subtract Integers)
機能:整数の減算(Subtract Integers)
2013.03.12
1刷 296
下から2行目
6刷
XLAT
<削除>
2013.03.12

感想・レビュー

ipusiron さん

2016-02-13

メモ完。