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
eBPF
sat
PRO
1
98
waruiBPF
sat
PRO
0
95
eBPFとwaruiBPF
sat
PRO
4
3.1k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
89
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
180
様々なファイルシステム
sat
PRO
0
330
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
420
ソースを読むプロセスの例
sat
PRO
22
18k
メモリマップトファイル
sat
PRO
1
170
Other Decks in Technology
See All in Technology
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
130
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.9k
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
130
AI との良い付き合い方を僕らは誰も知らない
asei
0
280
Snowflake Industry Days 2025 Nowcast
takumimukaiyama
0
130
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
110
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
5
2.2k
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
610
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
990
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
270
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
210
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Unsuck your backbone
ammeep
671
58k
My Coaching Mixtape
mlcsv
0
13
Building Applications with DynamoDB
mza
96
6.9k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
74
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
870
Test your architecture with Archunit
thirion
1
2.1k
Ethics towards AI in product and experience design
skipperchong
1
140
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