WZetaにスタックを代替するBAL命...
 
通知
すべてクリア

WZetaにスタックを代替するBAL命令、特殊INC命令がある


spinlock
投稿: 16
Topic starter
(@spinlock)
Active Member
結合: 2か月前

コンパイラなどスタックを前提としたソフトウェアは多くあります。WZetaの命令セットにはスタックがありません。

サブルーチンコールはBAL命令を使えば、できます。

INCX/INCXC命令を使えばメモリをスタックポインタ利用することが高速になります。複数のタスクを時分割実行する場合、タスク毎にスタックポインタのメモリを確保すれば、タスクをスイッチするときにスタックポインタを入れ替える手間が省けるため思ったより特殊INC命令によるソフトウェアスタックは遅くありません。

 

以下はWZetaのSDogコアとRedCoderコアのみに当てはまる内容

またWZetaには1段の高速スタックがあるので普通の8bit CPUより高性能になる場合が多いかもしれません。 ハードマクロ命令の機能は1段の高速スタックのハードともいえる機能なのです。 マイコン用途ではプログラム規模が小さいため、多くの場合、効果的に利用できると思われます。 ハードマクロ命令は64命令までですが、サブルーチンのコード、 16バイト毎にハードマクロ命令1命令を消費します。 ただし63番目のハードマクロ命令には、その制限がないので、大規模なサブルーチンを置けます。 ハードマクロ命令と分岐命令を組み合わせれば、やっぱり1段ですが、 普通のCPU並みの速度のサブルーチンを多数、使用できます。