アセンブリの勉強
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-17 03:49:11 +09:00
.vscode add:firststep 2026-07-16 17:15:25 +09:00
step1 add:step2 2026-07-17 02:52:48 +09:00
step2 add:step2 2026-07-17 02:52:48 +09:00
.gitignore gitignore 2026-07-17 03:49:11 +09:00
README.md add:step2 2026-07-17 02:52:48 +09:00

Learn_Assembly

アセンブリ言語x86-64 / NASMを一から学ぶための学習用リポジトリです。

各Stepごとに、

  • アセンブリソース (stepX.asm)
  • 自分で考えた内容 (stepX.md)
  • AIによる解説

を残しながら、少しずつ低レベルプログラミングを学習していきます。

学習環境

現在の環境

  • OS: Ubuntu 26.04 LTS
  • CPU: x86-64 (AMD Ryzen)
  • アセンブラ: NASM
  • リンカ: GNU ld
  • デバッガ: GDB
  • エディタ: Visual Studio Code

必要なソフトウェア

Ubuntuの場合

sudo apt update

sudo apt install \
    nasm \
    binutils \
    gdb \
    strace \
    gcc \
    make

VS Codeを使用する場合は、以下の拡張機能がおすすめです。

  • x86 and x86_64 Assembly
  • Hex Editor (Microsoft)
  • Error Lens任意

ビルド

mkdir -p build

nasm -f elf64 -g -F dwarf step1.asm -o build/step1.o
ld build/step1.o -o build/step1
  • -g

    • デバッグ情報を付与
  • -F dwarf

    • GDBで利用できるDWARF形式のデバッグ情報を生成

実行

./step1

終了コードの確認

echo $?

デバッグ

gdb ./step1

Intel記法で表示する場合

set disassembly-flavor intel

便利なコマンド

逆アセンブル

objdump -d -Mintel step1

ELFヘッダ

readelf -h step1

セクション一覧

readelf -S step1

システムコールの確認

strace ./step1

ディレクトリ構成(予定)

Learn_Assembly/
│
├── README.md
├── .gitignore
│
├── Step01/
│   ├── step1.asm
│   └── step1.md
│
├── Step02/
│   ├── step2.asm
│   └── step2.md
│
└── ...

このリポジトリについて

このリポジトリは、完成したコードを集めることよりも、

  • 自分で考える
  • 実際に動かす
  • バイナリを確認する
  • ELFやシステムコールの動きを理解する

ことを目的としています。

学習途中のメモや考察も積極的に残し、後から振り返られる教材として管理します。