Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CPU命令もバイナリ
Search
Satoru Takeuchi
PRO
June 07, 2020
Technology
0
330
CPU命令もバイナリ
下記動画のテキストです
https://youtu.be/xSFawKHxjkE
Satoru Takeuchi
PRO
June 07, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
書籍執筆での生成AIの活用
sat
PRO
1
290
ChatGPTに従って体調管理2026
sat
PRO
0
150
eBPF
sat
PRO
1
110
waruiBPF
sat
PRO
0
110
eBPFとwaruiBPF
sat
PRO
5
3.8k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
100
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
200
様々なファイルシステム
sat
PRO
0
340
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
430
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Cosmos World Foundation Model Platform for Physical AI
takmin
0
870
今日から始めるAmazon Bedrock AgentCore
har1101
4
410
What happened to RubyGems and what can we learn?
mikemcquaid
0
290
Agile Leadership Summit Keynote 2026
m_seki
1
610
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.4k
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.1k
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
130
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
600
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Automating Front-end Workflow
addyosmani
1371
200k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Producing Creativity
orderedlist
PRO
348
40k
The Language of Interfaces
destraynor
162
26k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
The Cult of Friendly URLs
andyhume
79
6.8k
Side Projects
sachag
455
43k
Evolving SEO for Evolving Search Engines
ryanjones
0
120
Transcript
CPU命令もバイナリ Jun 7th, 2020 Satoru Takeuchi Twitter: satoru_takeuchi 1
もくじ • CPU命令実行のしくみ • x86_64アーキテクチャのCPU命令 • 実行ファイルの中身を見る • まとめ 2
もくじ • CPU命令実行のしくみ • x86_64アーキテクチャのCPU命令 • 実行ファイルの中身を見る 3
前置き • すべてのデータはバイナリ(別の回で説明済) ◦ 整数 ◦ 文字、文字列 • CPU命令もデータ ◦
1つ以上のCPU命令のかたまりを一般に「コード」と呼ぶ ◦ コードの指す意味は広いので、ここでは「 CPU命令」と書く 4
CPU命令実行のしくみ: 初期状態 5 ストレージデバイス (HDD, SSDなど) メモリ CPU 実行ファイル CPU命令列
レジスタ データ
実行ファイルのメモリへのロード 6 ストレージデバイス (HDD, SSDなど) メモリ CPU 実行ファイル CPU命令列 レジスタ
データ CPU命令列 データ コピー
CPUへの命令の読み込み 7 ストレージデバイス (HDD, SSDなど) メモリ CPU 実行ファイル CPU命令 レジスタ
データ CPU命令列 データ 1命令読む CPU命令
命令実行 8 ストレージデバイス (HDD, SSDなど) メモリ CPU 実行ファイル CPU命令 レジスタ
データ CPU命令列 データ CPU命令 やることは命令によって違う • データのコピー ◦ メモリ⇔レジスタ ◦ メモリ⇔メモリ ◦ レジスタ⇔レジスタ • 計算 どういうバイト列がなにをする命令なのかは CPUアーキテクチャによって異なる
次の命令を読み出す(以下くりかえし) 9 ストレージデバイス (HDD, SSDなど) メモリ CPU 実行ファイル CPU命令 レジスタ
データ CPU命令列 データ CPU命令 1命令読む
もくじ • CPU命令実行のしくみ • x86_64アーキテクチャのCPU命令 • 実行ファイルの中身を見る • まとめ 10
X86_64アーキテクチャのCPU命令 • IntelのCPUについては同社公式サイトに全命令リファレンスがある https://software.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-2a-2b- 2c-and-2d-instruction-set-reference-a-z.html • 2000ページ以上あるので全部読もうとすると死ぬ ◦ 読破を目指さず、必要に応じて参照しましょう •
とりあえず覚えておけばいい命令 ◦ Mov: データのコピー ▪ メモリ⇔レジスタ間、メモリ⇔メモリ間、レジスタ⇔レジスタ間、なんでも ◦ Add: 足し算 11
もくじ • CPU命令実行のしくみ • x86_64アーキテクチャのCPU命令 • 実行ファイルの中身を見る • まとめ 12
演習 • 使うもの ◦ (自作)Addプログラム: 1と2を足した結果を返すだけ ◦ Objdump: 実行ファイルの中身を読む •
やること ◦ Objdumpでaddプログラムの中身を見る ◦ 1と2を足しているコードを見つける ◦ コードがバイナリデータに対応していることを確認 13
もくじ • CPU命令実行のしくみ • x86_64アーキテクチャのCPU命令 • 実行ファイルの中身を見る • まとめ 14
まとめ • 実行ファイルの中に命令列をあらわすバイナリデータが入っている • バイナリデータと命令の対応はCPUアーキテクチャによって違う • IntelのCPUについては対応表が公開されている • objdumpコマンドによって実行ファイル内の命令列を見られる 15