Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
今から始める8bits CPU アセンブラ言語
Search
sapi_kawahara
March 10, 2025
Education
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今から始める8bits CPU アセンブラ言語
sapi_kawahara
March 10, 2025
More Decks by sapi_kawahara
See All by sapi_kawahara
氷川神社の話
sapi_kawahara
0
75
EzSignという 電子ペーパー
sapi_kawahara
2
93
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
390
プログラミング言語において文字列を複数行にわたって だらだらと記載するアレ
sapi_kawahara
0
220
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
780
執筆テーマの決め方
sapi_kawahara
2
450
LTの禁じ手
sapi_kawahara
2
1.3k
||とorの違いは登壇して解決した
sapi_kawahara
0
430
Macintosh talk / Macintoshの話
sapi_kawahara
0
270
Other Decks in Education
See All in Education
新しいJavaを学んで・使っていこう! / osd26do
gishi_yama
0
250
Geografía y fútbol. Atlanta. la megalópolis del fútbol
juanmartin2026
1
12k
良書紹介08_ 頭のいい子がやっているすごいグラフの読み方
bunnchinn3
0
160
[2026前期火5] 論理学(京都大学文学部 前期 第6回)「かつとまたはの規則」
yatabe
0
510
焦燥を平穏に変えるエンジニアのための哲学
ichimichi
7
6.8k
マークシート試験のTeX言語を用いた自動採点について
doratex
0
3.1k
私たちはなんでテストするんだっけ? Ver.東北IT物産展2026 in 会津若松
camel_404
3
190
ちいかわを読め
uchi8977
1
330
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
250
[2026前期火5] 論理学(京都大学文学部 前期 第8回)「正規化定理の証明」
yatabe
0
320
武藤の処世術を書いてみた
mutomasa
0
110
AIの力を100%引き出すために
frievea
0
500
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Google's AI Overviews - The New Search
badams
0
1.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Raft: Consensus for Rubyists
vanstee
141
7.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Statistics for Hackers
jakevdp
799
230k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
Transcript
今から始める8bits CPU アセンブラ言語 さっぴー川原 @sapi_kawahara
自己紹介 • さっぴー川原 @sapi_kawahara • アラ還 • 埼玉県川越市在中 • 経験した代表的な開発言語:Python,PHP,Ruby,C言
語,C++,Perl,Go,Java,JavaScript,Kotlin(1月から始めまし た),Bash,AWK,SQL,HTML,BASIC,アセンブラ言語 • 経験したアセンブラ言語 :6502,65816,GB80,HuC62,68000,SuperH,R3000 元ゲームエンジニア です!
今から始めると言っても
LTの時間では
無理っす!!
だから アセンブラ言語って 何だ?って
今回は基本中の基本 2つの基本について簡単に説明します
1つ目 命令数
アセンブラ言語は 「CPUが動くための命令を 人間が判りやすい言葉に置き換えた言語」
だから Classもない Instanceもない それこそMethodもない
あるのは以下の6つ • メモリーからの読み込み • メモリーへの書き込み • 計算(一部のCPUは加算減算のみ) • 判定(フラグ評価) •
フラグによるジャンプ • 何もしない
これだけでゲームソフトを開発してました🤩
逆にやることが少ないし 命令によっては 実行速度が異なるので
これを 人間オプティマイズ と呼びます!
人が高速になるように プログラミングしておりました
そんなソースコード とてもじゃないけど 読めたもんじゃない!
私も 3ヶ月前のソースコードが 読めませんでした!
これが「職人のタレ」です!
2つ目Endian
職人と呼ばれた人たちは 強い思想を持っています
アセンブラ言語においては 80系と68系の論争が 絶え間なく続いていました
なお、川原は68系を信仰してます
80系と68系で大きく異なる点 それはEndianです
Endianはデータ格納順序のことです
コンピューターは 1Byteごとメモリーに格納します
最大値は256です
じゃあ 256以上の数値を表すには?
2Bytes使えばいいんです!
では どのように格納します?
80系 下位アドレスに下位バイト 上位アドレスに上位バイト これがLittle Endian 下位バイト 上位バイト 下位アドレス 上位アドレス
68系 下位アドレスに上位バイト 上位アドレスに下位バイト これがBig Endian 上位バイト 上位バイト 下位アドレス 上位アドレス
Endianの影響は Little EndianとBig Endianの 解釈を間違えて 上位と下位を入れ替えてしまうと 別の値になることです
ぶっちゃけ言うと そんなに影響は無かった
理由は単純で 弊害が起こるのは CPU以外とのやり取りになりますが
ゲーム機は CPUに合わせた 周辺デバイスを作るので 80系デバイスはLittle Endian 68系デバイスはBig Endian このように設計されています
ただし! FM音源や PCM音源は Little Endianで設計されてます
スーパーファミコンのCPUは Little Endianなので PCM音源もLittle Endian
しかし! メガドライブのCPUは68000でBig Endian FM音源はLittle Endian だから サブCPUにLittle EndianであるZ80が 搭載されていた!
まとめ • この2つを把握したら、あなたもアセンブラ言語通です!! • アセンブラ言語の命令の種類は6つ ◦ それだけでゲームを動かしていた ◦ 少ない命令においては、職人と呼ばれる人が居た ◦
それがいつしか「職人のタレ」と呼ばれるようになった • 80系と68系は戦っていた ◦ 戦いの理由はEndian ◦ 大した差は無いけど、強い思想なので相容れない ◦ FM音源やPCM音源はLittle Endianなので、Big EndianのCPUではひと 工夫が必要
尺オーバーなので 以降は削除
CPUの説明
R3000 • プレイステーションなどに使用されていたCPU • ミップス社が開発した32bits CPU • なぜ、プレイステーションで使用されたか?たぶん、ソニーの ワークステーションNEWSで使用されていたからだと推測され ます
https://ja.wikipedia.org/wiki/NEWS_(%E3%82%BD%E3%8 3%8B%E3%83%BC)より画像を引用
SuperH • セガサターンなどで使用されたCPU • 日立製作所が開発した32bits CPU • もともと日立製作所は68000系のCPUを、モトローラ社からセ カンドライセンスとして作っていたが関係悪化したので、 68000に似たCPUを作ろうとした、それがSuperHだった
• ゲームセンターで稼働しているゲームにもSuperHを使用して いることが多く、セガサターンに搭載されるのは自然の成り行 きだったのかも?
65816 • スーパーファミコンで使用されたCPU • ウェスタンデザインセンターが開発した16bits CPU • 6502と互換性を持っていたため、ファミリーコンピューター の後釜として採用された?
HuC62 • PCエンジンで使用されたCPU • セイコーエプソンが開発した8bits CPU • 6502のパクリと互換性を持たせるためにハドソンが設計した
GB80 • ゲームボーイで使用されたCPU • 正式名称は「LR35902」で、シャープが開発した8bits CPU • Z80のパクリと互換性を持たせるためシャープが作ったが、液 晶デバイスと組み込みとして任天堂に売り込んだという噂があ る
• そのためファミコン開発者には不評だった80系CPU
6502 • ファミリーコンピューターで使用されたCPU • モステクノロジーが開発した8bits CPU • 世界的大ヒットしたパソコン、Apple 2で使用してたCPUなの で、その辺りの開発者を取り込もうとしたのか?と言われてい
る • 6502は6800というCPUに似ていて、俗にいう68系CPUと呼 ばれていて、ゲーム開発者には人気のCPUでした https://ja.wikipedia.org/wiki/Apple_II より画像を引用
Endian小ネタ • アーケードゲームでは、音源チップが変わることが多く、そのたび に設計し直すのが面倒だから、汎用的なZ80を挟んだと、先輩から 聞いたことがあります ◦ FPGA(Field Programmable Gate Array)の代替だったのかな?と思っていま
す • 通信系はBig Endianです • スーファミのサテラビューもBig Endianでした ◦ 通信衛星から色々な情報が取得できました • ゲームボーイの通信は1Byteなので、どっちのEndianでもありませ ん ◦ むしろゲームボーイの通信の難しさは半二重通信であることに尽きる