最終更新:2010-04-10 (土) 17:34:55 (5121d)
レジスタ
- f :レジスタファイル?のアドレス
- W :ワーキングレジスタ?
- b :ビットの位置(0~7)
- k :リテラル(定数データ)
- d :格納先 0 なら W へ格納、1 なら 指定のレジスタファイル?に格納
- Z : ゼロフラグ?
- C : キャリーフラグ
- DC : 下位4ビットのキャリーステータス
バイト処理命令
命令 | 引数 | 機能 | 影響フラグ | サイクル |
ADDWF? | f,d | 加算 W + f → W か f へ格納 | C,DC,Z | 1 |
ANDWF? | f,d | 論理積 W AND f → W か f へ格納 | Z | 1 |
CLRF? | f | f をゼロクリア | Z | 1 |
CLRW? | | W を ゼロクリア | Z | 1 |
COMF? | f,d | f の0,1反転 → W か fへ格納 | Z | 1 |
DECF? | f,d | f - 1 → W か f へ格納 | Z | 1 |
DECFSZ? | f,d | f - 1 → W か f 結果ゼロなら次命令スキップ | | 1(2) |
INCF? | f,d | f + 1 → W か f へ格納 | Z | 1 |
INCFSZ? | f,d | f + 1 → W か f 結果ゼロなら次命令スキップ | | 1(2) |
IORWF? | f,d | 論理和 W OR f → W か f へ格納 | Z | 1 |
MOVF? | f,d | 移動 f から W または f 自身へ格納 | Z | 1 |
MOVWF? | f | 移動 W から f へ格納 | | 1 |
NOP | | 何もしない | | 1 |
RLF? | f,d | 1ビット左へシフト → W か f へ格納 | C | 1 |
RRF? | f,d | 1ビット右へシフト → W か f へ格納 | C | 1 |
SUBWF? | f,d | 減算 f - W → W か f へ格納 | C,DC,Z | 1 |
SWAPF? | f,d | f の上位と下位を入れ替え → W か f へ格納 | | 1 |
XORWF? | f,d | 排他的論理和 W XOR f → W か f へ格納 | Z | 1 |
ビット処理命令
命令 | 引数 | 機能 | 影響フラグ | サイクル |
BCF? | f,b | f の b ビット目をゼロにクリアする | | 1 |
BSF? | f,b | f の b ビット目を1にセットする。 | | 1 |
BTFSC? | f,b | f の b ビット目がゼロだったら次命令スキップ | | 1(2) |
BTFSS? | f,b | f の b ビット目が1だったら次命令スキップ | | 1(2) |
リテラル処理命令
命令 | 引数 | 機能 | 影響フラグ | サイクル |
ADDLW? | k | 定数加算 W + k → W へ格納 | C,DC,Z | 1 |
ANDLW? | k | 定数論理積 W AND k → W へ格納 | Z | 1 |
IORLW? | k | 定数論理和 W OR k → W へ格納 | Z | 1 |
MOVLW? | k | 定数移動 k → W へ格納 | | 1 |
SUBLW? | k | 定数減算 k - W → W へ格納 | C,DC,Z | 1 |
XORLW? | k | 排他的論理和 W XOR k → W へ格納 | Z | 1 |
ジャンプ命令
命令 | 引数 | 機能 | 影響フラグ | サイクル |
CALL | k | サブルーチン k へジャンプ | | 2 |
GOTO? | k | k 番地へジャンプ | | 2 |
RETFIE? | | 割り込み許可で戻る | | 2 |
RETLW? | k | W に k を格納して戻る | | 2 |
RETURN? | | サブルーチンから戻る | | 2 |
他
命令 | 引数 | 機能 | 影響フラグ | サイクル |
CLRWDT? | | ウォッチドックタイマクリア | | 1 |
SLEEP? | | スリープモードにする | | 1 |
参考