IchigoJam マシン語でフィボナッチ数列 

部屋の隅からDIP ARMマイコン LPC1114が出てきたので 子供パソコンIchigoJam焼いてみた。

というわけで BTN 端子に針金を刺してタッチセンサーにするのにも飽きたのでマシン語フィボナッチ数列を書くなど。
C言語マシン語にするほうほうは こちらのページで知りました。
IchigoJam(4) <メモリダンプ・プログラム> (Yoshiのブログ)
必要なツールはこちらから入手
GCC ARM Embedded 4.9 series

コンパイル結果を逆アセンブル


00000000 :
0: 2200 movs r2, #0
2: 2101 movs r1, #1
4: 1c13 adds r3, r2, #0
6: b510 push {r4, lr}
8: 4282 cmp r2, r0
a: da04 bge.n 16
c: 18cc adds r4, r1, r3
e: 3201 adds r2, #1
10: 1c19 adds r1, r3, #0
12: 1c23 adds r3, r4, #0
14: e7f8 b.n 8
16: 1c18 adds r0, r3, #0
18: bc10 pop {r4}
1a: bc02 pop {r1}
1c: 4708 bx r1

IchigoJamで動かせるようにBASICに書き換え

手作業でやりましたが、自動化ツールも存在します。
上のblog記事からリンクをたどってください


10 poke #700,#00,#22, #01,#21, #13,#1c, #10,#b5
20 poke #708,#82,#42, #04,#da, #cc,#18, #01,#32
30 poke #710,#19,#1c, #23,#1c, #f8,#e7, #18,#1c
40 poke #718,#10,#bc, #02,#bc, #08,#47
50 for i=0 to 23
60 ?i,usr(#700,i)
70 next0 0