書籍概要

アセンブラで読み解くプログラムのしくみ

著者
発売日
更新日

概要

ソフトウェア開発に携わる人々の嗜好が,Web 2.0に代表される「サービス指向」へと大きく傾いている昨今,とくにオブジェクト指向や実行の並列性といった抽象度の高い概念を扱うようなケースでは,相応の抽象度を提供するプログラミング言語を使用すべきです。

では,現代においてアセンブラを修得する事には意味がないのでしょうか?

いいえ,そんなことはありません。

プログラムによって実現される機能が,たとえどんなに複雑そうに見えても,所詮は「CPU命令の集まり」に過ぎません。より小さい単位へと機能を分割し続けた場合,最終的にはアセンブラのレベルで底を打つわけですから,プログラムの動作に関して根本的なレベルで理解したいのであれば,アセンブラの修得はうってつけと言えます。

本書は,技術評論社のコンテンツサイト「gihyo.jp」上の連載記事「アンティーク・アセンブラ ~Antique Assembler」を元に,大幅に加筆修正したものです。

連載時に取り上げたトピックに対して,説明の詳細化などの加筆を行った以外に,「C++ の仮想関数」や「UNIX の共有ライブラリ」,「継続」といったトピックを新たに追加しました。これらの新規トピックの追加により,純粋に「アセンブラ入門」的な方向性だった連載時よりも,より幅広く読んでもらえる内容になったのではないかと思います。

とかく難しいと思われがちなアセンブラですが,本書を読むことが,最初の一歩を踏み出す際の一助になれば幸いです。

(「はじめに」より抜粋)

こんな方におすすめ

  • アセンブラを修得する必要に迫られている人
  • プログラムの動作原理に興味のある人

サンプル

samplesamplesamplesamplesamplesamplesamplesamplesamplesamplesamplesample

目次

  • はじめに

第1章 アセンブラとは

  • 1.1 アセンブラの位置づけ
  • 1.2 環境の準備

第2章 メモリに始まりメモリに終わる

  • 2.1 アドレッシング
  • 2.2 データ格納に関するあれこれ
  • 2.3 メモリの前の平等

第3章 もしも"if"なら

  • 3.1 状態フラグ
  • 3.2 条件分岐
  • 3.3 論理積/論理和
  • 3.4 分岐以外の状態フラグ参照

第4章 "case" の事情

  • 4.1 if分岐の限界
  • 4.2 switchの動作原理
  • 4.3 switchの実現
  • 4.4 低レイヤーから見たswitch

第5章 関数の機能~呼び出し元からの独立

  • 5.1 復帰位置の取得
  • 5.2 局所的情報の保持
  • 5.3 低レイヤーから見た関数呼び出し

第6章 関数の機能~関数間での連携

  • 6.1 引数と戻り値
  • 6.2 再帰呼び出し
  • 6.3 低レイヤーから見た関数呼び出し

第7章 仮想関数の実際

  • 7.1 仮想関数とは
  • 7.2 仮想関数呼び出しの実現
  • 7.3 アセンブラレベルから見たC++

第8章 共有ライブラリの負担

  • 8.1 共有ライブラリとは
  • 8.2 共有ライブラリの実現
  • 8.3 共有ライブラリに関するその他のトピック

第9章 継続は続く

  • 9.1 setjmp/longjmpによる大域脱出
  • 9.2 継続とは?
  • 9.3 継続の実現

付録A 4ビットマイコンでアセンブラプログラミング

  • A.1 FXマイコンとは?
  • A.2 FXマイコン向けアセンブラ
  • A.3 実装対象の仕様決め
  • A.4 繰り上がりに配慮した加算処理
  • A.5 多倍長加算処理の実装

付録B Scheme処理系概要

  • B.1 Scheme処理系の導入
  • B.2 Schemeの基本文法

サポート

現在サポート情報はありません。

商品一覧