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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
AI駆動開発を事業のコアに置く
tasukuonizawa
1
180
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.3k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
600
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
Tebiki Engineering Team Deck
tebiki
0
24k
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.2k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
150
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
170
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
240
Featured
See All Featured
KATA
mclloyd
PRO
34
15k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
A Soul's Torment
seathinner
5
2.3k
Test your architecture with Archunit
thirion
1
2.2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
51
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
How to build a perfect <img>
jonoalderson
1
4.9k
Design in an AI World
tapps
0
140
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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