2017年10月7日土曜日

アセンブラ入門

「アセンブラ入門」を、学部上級から研究者・実務家まで(諸学者向け)に耐える粒度で選んだ書籍リストです。目的別に並べています。

1) まず“教科書”として押さえる(体系理解)

  • 『独習アセンブラ 新版』大崎博之(翔泳社, 2021)
    数表現・CPU/メモリ・スタックから入り、GASとx86命令、さらに仮想機械やAVRまで扱う、講義用にも使える厚い標準テキスト。

  • Computer Systems: A Programmer’s Perspective(CS:APP, 3rd ed.)Bryant & O’Hallaron
    「Cコードがどう機械語へ落ち、性能や正しさにどう効くか」を、x86-64を軸に体系化。アセンブリは“目的”ではなく“理解の中核”として出てきます。

  • Computer Organization and Design: RISC-V Edition(2nd ed., 2020)Patterson & Hennessy
    命令セットとマイクロアーキテクチャの対応を、RISC-Vで学べる定番(研究室の輪読にも乗る)。

2) x86/ x86-64で“読む力”を作る(PC・OS・低レベル実務)

  • 『デバッガによるx86プログラム解析入門【x64対応版】』Digital Travesia管理人 うさぴょん(秀和システム, 2014)
    デバッガ(OllyDbg)で実バイナリを追い、32/64bit Windowsアプリの解析手順を学ぶ系。セキュリティ・RE寄りにも接続しやすい。

  • 『x86アセンブラ入門』大貫広幸(CQ出版, 2006)
    x86系アセンブリを正面から学ぶ日本語入門。版は古いので、現代OS/ABIは別資料で補う前提で。

3) ARMで“組み込み寄り”に入る(マイコン・SoC)

  • 『ARMで学ぶ アセンブリ言語入門』出村成和
    ARMの基礎だけでなく、組み込み機器や割り込み、開発環境まで含めて実務導線がある入門。

4) RISC-Vで“教育向けISA”から理解する(読み替えが利く)

  • 『RISC-Vから学ぶC言語 ポインタ理解のためのアセンブリ入門』レ点(2024)
    Cのポインタを、RISC-Vアセンブリへ落として追う設計。短めでも狙いが明確で、講義補助にも使いやすい。

5) “名著枠”と歴史的視点(古典だが示唆が多い)

  • 『はじめて読むアセンブラ』村瀬康治(1985)
    古典(Z80/8080系の時代背景)ですが、低レイヤを「道具の原点」として掴む読み物として価値があります。

  • The Art of Assembly Language Programming(Randall Hyde)
    高級言語経験者に向けて、アセンブリを“高級言語の視点”で整理する大部の解説(Web公開の公式ページあり)。

6) 最適化・性能(入門後の“研究者向けリファレンス”)

  • Agner Fog “Optimizing subroutines in assembly language”
    x86/x86-64最適化の定番マニュアル(最新版更新が継続)。コンパイラ屋・性能屋の共通語彙になります。


使い分けの目安

  • 教養として体系を作る:『独習アセンブラ 新版』+ CS:APP

  • 実バイナリを読めるようにする:『デバッガによるx86…』+(必要に応じて)x86入門

  • 組み込み・SoCに寄せる:ARM入門

  • 講義・輪読・読み替え力重視:RISC-V本+Patterson&Hennessy(RISC-V版)