MPASM Technic – 高速な左シフト

一般的に2倍とか4倍などを計算する際、左シフトを用いるが、PIC18FxxK40では高速に演算できます。

これは、8ビット系では珍しい掛け算のMULLW命令が実装されたことによります。
特筆すべきはMULLW命令は1インストラクションクロックで実行するってことです。

MULLWはWREG(8bit)に固定数値(8bit)の掛け算が行え、結果はPROD(16bit)に入ります。

1インストラクションクロックで実行終了とはすごいですね。
クロッキングでシフトでは速度的に間に合わないので、16段(16bit)分の加算器が入っているってことですかね?
集積度高すぎ。

前から実現してほしい、TurnByte演算(MSBとLSBのByte方向を入れ替える)なんか入れてくれませんかね?
ハード的には単純なゲートで実現できるので超簡単。
ソフトで行うとかなり大変。テーブル変換では256バイトもメモリ食うしね。
なぜかどのCPUにも無い。

カテゴリー: MPASM, MPLAB X IDE, PIC, PIC18F, PIC18F46K40, PIC18FxxK40 タグ: , パーマリンク