|
|
Wレジスタをファイルレジスタfを加算して d が0と場合はWレジスタへ1の場合はファイルレジスタfに格納します。 この命令の実行でC,DC,Zフラグが結果に応じて変化します。
|
ファイルレジスタfからWレジスタの内容を減算して d が0と場合はWレジスタへ1の場合はファイルレジスタfに格納します。 この命令の実行でC,DC,Zフラグが結果に応じて変化します。
|
Wレジスタとファイルレジスタfとの論理積をとりその結果をdの値に応じて格納します。 この命令の実行でZフラグが結果に応じて変化します。
|
この命令の実行でZフラグが結果に応じて変化します。
|
この命令の実行でZフラグが結果に応じて変化します。
|
ファイルレジスタfの内容を全ビット反転してdが0の場合はWレジスタに1の場合は元のファイルレジスタfに結果を格納します。 いわゆるNOT命令です。算術演算で使う2の補数を計算する場合はこの命令で全ビット反転し、1加算することで実現します。 この命令の実行でZフラグが結果に応じて変化します。
|
ファイルレジスタfを0クリアします。 この命令でZフラグがセット(1がセット)されます。 |
Wレジスタに0をセットします。この命令でZフラグがセットされます。 |
ファイルレジスタfから1を減算します。尚始めの値が0の場合は255(0FFh)になります。 結果はdが0の時Wレジスタへ1の時、元のファイルレジスタfに入ります。 この命令ではZフラグのみ結果に応じて変化します。 |
ファイルレジスタfから1を減算します。尚始めの値が0の場合は255(0FFh)になります。 結果はdが0の時Wレジスタへ1の時、元のファイルレジスタfに入ります。 そして、結果が0になった場合のみ次の命令をスキップします。スキップした場合は2サイクルの実行時間を必要とします。 この命令はフラグが変化しません。 |
ファイルレジスタfから1を加算します。尚始めの値が255(0FFh)の場合は0になります。 結果はdが0の時Wレジスタへ1の時、元のファイルレジスタfに入ります。 この命令ではZフラグのみ結果に応じて変化します。 |
ファイルレジスタfから1を加算します。尚始めの値が0の場合は255(0FFh)になります。 結果はdが0の時Wレジスタへ1の時、元のファイルレジスタfに入ります。 そして、結果が0になった場合のみ次の命令をスキップします。スキップした場合は2サイクルの実行時間を必要とします。 この命令はフラグが変化しません。 |
ファイルレジスタfの内容をWレジスタに格納します。d=0の場合 d=1の場合は何も起こりませんが、Zフラグのみfレジスタに応じて変化します。(0チェックができる) 結果に応じてZフラグがセットされます。 この命令の逆をするのはmovwf命令です。 |
Wレジスタの内容をファイルレジスタfに格納します。 この命令でフラグは変化しません。 この命令の逆をするのはmovf命令です。 |
ファイルレジスタfの内容の上位4ビットと下位4ビットを入れ替えdの値に応じて結果を格納します。 |
この命令は1サイクルのCPU時間を浪費します。 4MHzのクロックでの動作の場合、この命令で1μsの時間を稼げます。 ちなみに2サイクルの場合は
(GOTO命令で次の命令にジャンプすると2サイクルの時間を消費します) |
ファイルレジスタfの内容を1ビット左シフトし、結果をdの値に応じて格納します。 はみ出た1ビットはCフラグ(キャリーフラグ)にセットされ、一番右に挿入されたビットは その直前のCフラグの値です。 ですからこの命令の前にCレジスタを設定しておかないとシフト結果が特定できませんので注意してください。 |
ファイルレジスタfの内容を1ビット右シフトし、結果をdの値に応じて格納します。 はみ出た1ビットはCフラグ(キャリーフラグ)にセットされ、一番左に挿入されたビットは その直前のCフラグの値です。 ですからこの命令の前にCレジスタを設定しておかないとシフト結果が特定できませんので注意してください。 |
ファイルレジスタfの特定のビットをクリア(0を設定)することができます。 クリアするビットはbで指定し、0〜7までの値が有効です。 |
ファイルレジスタfの特定のビットをセット(1を設定)することができます。 クリアするビットはbで指定し、0〜7までの値が有効です。 |
条件分岐する命令です。この命令はファイルレジスタfのビットbが0のとき次の命令をスキップしてその次からの 命令から実行を再開します。 スキップした場合は2サイクル、スキップしない場合は1サイクルの時間を消費します。 その命令は非常に低レベルな命令で通常は以下のようにして使う場合が多いでしょう。
|
条件分岐する命令です。この命令はファイルレジスタfのビットbが1のとき次の命令をスキップしてその次からの 命令から実行を再開します。 スキップした場合は2サイクル、スキップしない場合は1サイクルの時間を消費します。 |
Wレジスタに数値定数kの値を加算して結果をWレジスタに格納します。 この命令の実行でC,DC,Zフラグが結果に応じて変化します。 |
数値定数kの値からWレジスタの内容を減算して結果をWレジスタに格納します。 この命令の実行でC,DC,Zフラグが結果に応じて変化します。 注:この命令は定数からWレジスタの内容を減算するのでプログラムする際に注意してください |
Wレジスタを定数kとの論理積をとり結果がWレジスタに格納されます。 この命令の実行でZフラグが結果に応じて変化します。 |
Wレジスタを定数kとの論理和をとり結果がWレジスタに格納されます。 この命令の実行でZフラグが結果に応じて変化します。 |
Wレジスタを定数kとの排他的論理和をとり結果がWレジスタに格納されます。 この命令の実行でZフラグが結果に応じて変化します。 |
サブルーチンコールを行います。この命令は2サイクルの実行時間を消費します。 |
ウォッチドッグタイマのカウンタをクリアします。 |
無条件ジャンプをします。この命令は2サイクルの実行時間を消費します。 |
定数kの値をWレジスタに格納します。フラグは変化しません。 |
割り込み処理ルーチンからリターンします。この命令は2サイクルの実行時間を消費します。 |
サブルーチンからリターンします。この命令は2サイクルの実行時間を消費します。 |
サブルーチンからリターンし、定数kをWレジスタにセットします。 この命令は2サイクルの実行時間を消費します。 |
CPUが低消費電流モードに入ります。スタンバイモードになります。 |