CPU
上級

アセンブリ(アセンブリ)

CPU が直接実行する機械語に近い低レベルプログラミング言語、または .NET / Java の実行可能ファイル単位を指す多義語。x86_64 / ARM64 / RISC-V のアセンブリが主要。

0 回閲覧
0 いいね
2026/5/2 更新
関連タグ
x86_64
ARM64
RISC-V
GAS
NASM

概要

アセンブリ(Assembly / Assembly Language)は、文脈により全く異なる意味を持つ多義語である:

  1. アセンブリ言語: CPU が直接実行する機械語と 1:1 対応する低レベルプログラミング言語
  2. .NET アセンブリ: .NET の実行可能ファイル単位(DLL / EXE)、メタデータ + IL コード
  3. Java JAR: Java の配布単位、複数クラスを ZIP 圧縮
  4. 製造業の組立: 部品から製品を組み立てる工程

PC 自作 / プログラミング文脈で最も頻出は (1) のアセンブリ言語で、x86_64(Intel / AMD)/ ARM64(Apple Silicon / Qualcomm)/ RISC-V(OSS)が三大命令セットアーキテクチャ(ISA)。OS カーネル・ブートローダ・暗号ライブラリ・ゲームエンジンの最適化箇所・組込みシステムで現役技術である。

主要命令セットアーキテクチャ(ISA)

ISA採用 CPU特徴
x86_64 / AMD64Intel Core / AMD Ryzen / EPYCデスクトップ / サーバ標準、CISC
ARM64 / AArch64Apple Silicon / Qualcomm Snapdragon / AWS Gravitonモバイル / Mac / 効率重視
RISC-VSiFive / Western Digital / 中国系OSS、急成長
LoongArchLoongson 中国中国国産
POWERIBM Power10エンタープライズ
MIPS(廃止間近)レガシー組込衰退

アセンブリ言語の例(x86_64)

section .data
    msg db "Hello, World!", 10
    len equ $ - msg

section .text
    global _start

_start:
    mov rax, 1          ; sys_write
    mov rdi, 1          ; stdout
    mov rsi, msg        ; メッセージアドレス
    mov rdx, len        ; 長さ
    syscall

    mov rax, 60         ; sys_exit
    mov rdi, 0          ; exit code
    syscall

主要アセンブラ

x86_64 / x86

ツール形態
NASM(Netwide Assembler)OSS、Intel 構文
GAS(GNU Assembler)OSS、AT&T 構文
MASM(Microsoft Macro Assembler)Windows、Intel 構文
YASMNASM 互換、改良版
FASMOSS、自己ホスティング

ARM64

ツール形態
GAS ARMOSS
LLVM Clang ARMOSS
ARM Compiler 6商用

RISC-V

ツール形態
GNU RISC-V ToolchainOSS
LLVM RISC-VOSS

SIMD(並列演算)命令

拡張ビット幅採用
SSE / SSE2-4128bitx86_64 全 CPU
AVX2256bitIntel / AMD(2014 以降)
AVX-512512bitXeon / Ryzen(一部)
AVX10256/512bitIntel 次世代統合(2026 年)
NEON128bitARM64 全 CPU
SVE2可変ARMv9
RVV(RISC-V Vector)可変RISC-V Vector 拡張

アセンブリの現代的な用途

用途理由
OS カーネル ブート起動初期の低レベル制御
暗号ライブラリサイドチャネル攻撃対策、定数時間実装
動画コーデックx264 / x265 / AV1 の SIMD 最適化
ゲームエンジン物理計算 / 3D 数学のホットパス
数値計算BLAS / LAPACK の SIMD
組込みシステムRAM 制限環境
エクスプロイト開発Reverse Engineering / Pwn
JIT コンパイラLLVM / V8 / .NET CLR
デバッガGDB / WinDbg / lldb
プロファイラperf / Intel VTune

.NET アセンブリ(DLL / EXE)

別文脈。.NET の配布単位で、メタデータ + IL(Intermediate Language)コードを含む。実行時に CLR(Common Language Runtime)が JIT コンパイルしてネイティブコード化する。

// .NET アセンブリ作成
public class HelloWorld {
    public static void Main() {
        System.Console.WriteLine("Hello!");
    }
}
// → HelloWorld.dll や .exe として配布

学習リソース(2026 年)

リソース言語
Compiler Explorer (godbolt.org)C++ → アセンブリ表示
Easy 6502 オンライン6502 入門
RISC-V ReaderRISC-V 詳細
Intel 64 and IA-32 Architectures Software Developer Manualx86_64 完全リファレンス
ARM Architecture Reference ManualARM 完全リファレンス

PC 自作との接点

  • CPU 選定: x86_64(Intel / AMD)vs ARM64(Apple)vs RISC-V(将来)
  • オーバークロック: CPU 命令の挙動理解が深いほど安全な OC 可能
  • コンパイラ最適化: -march=native / -mavx2 等で SIMD 利用
  • アセンブリ学習: Visual Studio / godbolt.org でコンパイラ出力確認

関連用語との違い

用語違い
機械語バイナリ、アセンブリは可読版
高級言語C/Python 等、アセンブリは低レベル
ニーモニック命令の英字表記、アセンブリの記法
バイトコードJVM / .NET 中間形式、機械語の上位

よくある質問

Q1: 現代のプログラマがアセンブリを学ぶ価値は? A: ホットパス最適化 / Reverse Engineering / 組込み / セキュリティ研究で価値大。一般 Web 開発では直接使わないが、コンパイラの出力を読めれば性能チューニングに圧倒的有利。

Q2: x86_64 と ARM64、初学者はどちらを学ぶ? A: ARM64(命令数少なく直交性高い、Mac / iPhone / モバイル全対応)。x86_64 は歴史的拡張多く複雑、Intel / AMD ハードコア用途で。

Q3: RISC-V はメインストリームになる? A: 2030 年代に組込 / 一部 PC で採用拡大予測。中国 / インドの国産 CPU、AWS Graviton 系の対抗候補。デスクトップ / サーバ市場で x86_64 / ARM64 を脅かすには 5-10 年要する見込み。

まとめ

  • CPU が実行する 機械語に近い低レベル言語(多義語)
  • 2026 年は x86_64 / ARM64 / RISC-V が三大 ISA
  • OS カーネル / 暗号 / 動画 / ゲームの 最適化に現役
この記事について
カテゴリーCPU
難易度上級
作成日2026/5/2