create every day - 福野泰介の一日一創

IchigoJam/Ichigolatteで使えるマシン語生成、アセンブリ言語&アセンブラ、asm15 on GitHub

2017/09/15 23:55:00
#IchigoJam #arm 

ゲームづくりの醍醐味は、どういう仕掛けでプレイヤーを喜ばせようかとあれこれ考えること。 プログラミングすればすぐに実現。まずは自分が楽しめて、人に喜んでもらって二度美味しい!

ゲームづくりに慣れてくるとやってみたくなる複雑な仕掛け。複雑になればなるほど高速なコンピューターといえども、遅くなります。 そこを、いかに効率がいいロジックを考えるかが腕の見せどころ!IchigoJamでのゲームづくりは、限界が低い分、すぐにその成長のチャンスに巡り会えます。

アルゴリズム(=考え方、作り方)でなんとかするのが常套手段ですが、奥の手に「マシン語」があります。

IchigoJam BASICは、インタプリタといって、分かりやすく書かれたプログラミング言語をプログラムでコンピューターが分かる言葉「マシン語」にひとつひとつ翻訳しながら動く仕組みでできています。 もし直接「マシン語」で話せたら、翻訳者(インタプリタ)が必要ない分、速くなるわけです。

IchigoJamをお持ちであれば、すぐに試せるマシン語入門。
はじめてのマシン語 - IchigoJamではじめるARMマシン語その1

0と1の羅列であるマシン語を分かりやすくするためのアセンブリ言語。
初心者にもわかりやすい表記でつくったオリジナルのアセンブリ言語「asm15」としてまとめました。
Cortex-M0 ARMマシン語表(抜粋)

Cortex-M0とは、ARM規格のCPUに要求される処理速度別のラインナップの内、最も遅い部類のシリーズ名です。 遅い代わりに、回路が小さく、省エネで、機能が少なくわかりやすいという大きな利点があります!

BoxHeadRoomさんが開発した、この「asm15」表記のアセンブリ言語をマシン語に変換するプログラム(アセンブラといいます)に足りなかった命令などを加えた「asm15 assembler」をGitHub上へのアップしました。
asm15 assembler for IchigoJam / IchigoLatte

まだ使い勝手が悪い部分や、足りない命令があります。
ぜひオープンオースプロジェクト「as15 on GitHub」にご参加ください!

電子工作マガジンの常連、田木屋商店さんのIchigoJam作品、ミサイル防衛ゲームや、落ちものゲームなどには効果的にマシン語が使われています。 まずは遊んで、改造して、少しずつ自分のモノにしていきましょう。

試しに、逆アセンブラを作ってみるのも楽しかも?
座学より体験、体験よりものづくり。ものづくりに勝る学習なし!

- 連載、IchigoJamではじめる、ARMマシン語入門
1. はじめてのマシン語
2. ハンドアセンブルで超速計算!
3. マシン語メモリアクセスで画面超速表示!
4. マシン語でLEDを光らせよう!
5. 楽しさ広がるマルチバイトメモリアクセスとスタック
6. マシン語使いこなしTIPS
7. カジュアルに使うインラインマシン語
8. アセンブラを使って楽しよう
9. マシン語で高速SPI
10. マシン語を制するもの時間を制す
11. 画面をイチゴで埋め尽くす12の方法

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image