低レベルプログラミング 電子書籍(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
  1. ホーム >
  2. 電子書籍 >
  3. 低レベルプログラミング

低レベルプログラミング


翻訳
監修

形式:
電子書籍
発売日:
ISBN:
9784798156361
価格:
5,280(本体4,800円+税10%)
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
電子書籍

アセンブラとC11でIntel 64ビットプログラミングモデルを堪能する!

「IoT」というコトバが爆発的に広がり、老若男女だれもが知っているIT用語となった昨今ではあるけれど、そのインフラストラクチャとしてのPCアーキテクチャは、大多数の人々にとってはブラックボックスのままです。

とはいえ、そのブラックボックスを十全に理解し、各種ブラックボックスをフル活用できなければ、IoT自体の活用や発展・進歩はありえません。

本書はアセンブリとC言語を使用し、インテル製アーキテクチャの64ビット版が、コンパイルされたプログラムをどのように処理し、データをどのように、そしてどこに配置し、それらを使用しているのか、を克明に解説した1冊です。

すなわち、ネットワークにぶら下がって各種データをやり取りしているPCの、ごくごく基本的な動作原理をプログラミングすることで紐解きながら学ぶ、歯ごたえと滋養に満ちた学習書といえるでしょう。

アセンブラやC言語を多少なりとも知っていれば、知識の深度と対象への理解が増しますし、知らなくても必要最小限の知識を提供しているので、熱意さえあれば性能を重視したプログラムを書けるまで成長できるでしょう。

【本書の目的】
Intel x64をベースに、低レベルプログラミング領域における堅実な知識の蓄積と洞察力の向上を手助けすることです。最終的に、以下の事柄を目指します。

・アセンブリ言語で自由自在に書くことができる。
・Intel 64のプログラミングモデルを理解する。
・C11で、保守が容易で堅牢なコードを書ける。
・コンパイルのプロセスを理解し、アセンブリを解読できる。
・コンパイルされたアセンブリコードのエラーをデバッグできる。
・適切な計算モデルを使うことで、プログラムの複雑さを大きく減らせる。
・性能が重視されるコードを書ける。

【本書の特徴】
C言語やアセンブリを知らなくても、それらの必要最小限の知識とともに、順序立てて体系を解説しています。
また、各章末には適切な問題を配置し、自身の理解度を把握できます。それらの解答はすべてGitHub上に展開されているので、容易に確認できますし、必要であればコンパイルし、実行して結果を確認することも可能です。

第1部 アセンブリ言語とコンピュータアーキテクチャ

第1章 コンピュータアーキテクチャの基礎
第2章 アセンブリ言語
第3章 レガシー
第4章 仮想メモリ
第5章 コンパイル処理のパイプライン
第6章 割り込みとシステムコール
第7章 計算モデル

第2部 プログラミング言語C
第8章 基礎
第9章 型システム
第10章 コードの構造
第11章 メモリ
第12章 構文と意味と実際
第13章 良いコードを書くには

第3部 Cとアセンブラの間

第14章 変換処理の詳細
第15章 共有オブジェクトとコードモデル
第16章 性能
第17章 マルチスレッド

第4部 付録

第18章 付録A:gdbを使う
第19章 付録B:makeを使う
第20章 付録C:システムコール
第21章 付録D:性能テストの情報
第22章 付録E:参考文献

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

お問い合わせ

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

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

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

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

追加情報はありません。

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

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

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

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

書籍の種類:

書籍の刷数:

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

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

最終更新日:2019年06月25日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 013
箇条書き2つ目の最後の項目
r0dは、レジスタr0の下位3バイトを意味する。
r0dは、レジスタr0の下位4バイトを意味する。
2019.06.25
1刷 029
本文3行目
codeというラベルのアドレスに加えると
codesというラベルのアドレスに加えると
2019.06.25
1刷 031
リスト2-76行目
; rsi <- address of 'codes'のアドレス
; rsi <- ラベル'codes'のアドレス
2019.06.25
1刷 032
上段のソースコード(リスト2-8、前ページからの続き)3行目
kmp ex
jmp ex
2019.06.25
2刷 047
問題44
rax
の値が、
0x112233445567788
であるとき
rax
の値が、
0x1122334455667788
であるとき
2018.09.21
2刷 084
リスト5-8 defining_in_cla.asm
%ifdef flag
%ifdef myflag
2018.09.21

感想・レビュー

aoi_shirase さん

2018-03-01

大学の教科書とかっぽい 多少知識がなくても丁寧に説明してくれるので本人のやる気があれば読めるいい本だと思う またコンピュータ科学を勉強している人にとっても良い復習になる 各章ごとに練習問題ついてるのでみんなで輪読してもいいと思う