« 逆アセンブラ for Ichigojam | トップページ | Ichigojam 用逆アセンブラ 印刷機能付き »

Ichigojam マシン語で LED ピカピカ

 ichigojam マシン語熱が高まってきた夏休み

20190814_disasm01   ichigojam の OUT1ポートにWS2878用のデータを出力するマシン語プログラムを解読してみました。R0にはLEDの個数*3の値を代入して、R1にはデータアドレス、R2には出力ポートアドレスを代入して#EE番地に書いてあるWS.LEDコマンドのベクターにgotoするというコードです。

 R1には画面のアドレス#900番地を入れていますが、画面上に乱数生成した文字列をBASICで書いているので結局は256*3個の乱数をOUT1ポートに送信することになっています。

 もともと福野さんが書いたハンドアセンブラが R2=[@OUT1]L となっているところが実際のマシン語でどうなるのか見てみたかったため、逆アセンブラしてみたわけです。[PC+2]L ということで、4バイト単位のアドレッシングになっているのですが、NOPを挿入することでアラインを取って#714、#716番地からOUT1ポートの番地#50010004を読み取っていることが分かります。

 マシン語でないと速度で気に間に合わないケースがあると聞いてどうやって実装するんだろうと疑問に思っていましたが、これで IYN にもマシン語で I/O 出力のやりかたが分かってきました。I2CコマンドもAPI呼び出しすればよいのでしょう。

 

« 逆アセンブラ for Ichigojam | トップページ | Ichigojam 用逆アセンブラ 印刷機能付き »

電子回路工作」カテゴリの記事

コメント

この記事へのコメントは終了しました。

2022年3月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ