| 論理演算命令 |
| 命令 |
|
変化するフラグ |
機能 |
| AND |
fr, W |
Z |
fr = fr & W
|
|
| AND |
W, fr |
Z |
W = W & fr
|
|
| AND |
W, #lit |
Z |
W = W & #lit
|
|
| NOT |
fr |
Z |
fr = /fr |
| NOT |
W |
Z |
W = /W |
| MOV |
W, /fr |
Z |
W = /fr |
| OR |
fr, W |
Z |
fr = fr | W |
| OR |
W, fr |
Z |
W = fr | W |
| OR |
W, #lit |
Z |
W = W | #lit |
| XOR |
fr, W |
Z |
fr = fr ^ W |
| XOR |
W, fr |
Z |
W = W ^ fr |
| XOR |
W, #lit |
Z |
W = W ^ #lit |
| 算術・シフト演算命令 |
| ADD |
fr, W |
C,DC,Z |
fr = fr + W (+C; CF=1のとき) |
| ADD |
W, fr |
C,DC,Z |
W = W + fr (+C; CF=1のとき) |
| SUB |
fr, W |
C,DC,Z |
fr = fr - W (+C; CF=0のとき) |
| MOV |
W, fr-W |
C,DC,Z |
W = fr - W (+C; CF=0のとき) |
| CLR |
fr |
Z |
fr = 0 |
| CLR |
W |
Z |
W = 0 |
| CLR |
!WDT |
TO,PD |
WDTとプリスケーラをクリア |
| DEC |
fr |
Z |
fr-- |
| INC |
fr |
Z |
fr++ |
| MOV |
W, --fr |
Z |
W = fr-1 |
| MOV |
W, ++fr |
Z |
W = fr+1 |
| MOV |
W, << fr |
C |
frを左ローテートした結果をWにセット |
| MOV |
W, >> fr |
C |
frを右ローテートした結果をWにセット |
| MOV |
W, <> fr |
- |
frの上位4ビットと下位4ビットを入れ換えた結果をWにセット |
| RL |
fr |
C |
frを左ローテート |
| RR |
fr |
C |
frを右ローテート |
| SWAP |
fr |
- |
frの上位4ビットと下位4ビットの入れ換え |
| NOP |
|
- |
No operation |
| ビット操作命令 |
| SETB |
fr.bit |
- |
fr.bit = 1 |
| CLRB |
fr.bit |
- |
fr.bit = 0 |
| CLC |
|
C |
Cフラグをクリア |
| CLZ |
|
Z |
Zフラグをクリア |
|
|
| データ転送命令 |
| 命令 |
|
変化するフラグ |
機能 |
| MOV |
fr, W |
- |
fr = W |
| MOV |
W, fr |
Z |
W = fr |
| MOV |
W, #lit |
- |
W = #lit |
| MOV |
W, M |
- |
W = MODE |
| MOV |
M, W |
- |
MODE = W |
| MOV |
M, #lit |
- |
MODE = #lit |
| MOV |
!rx, W |
- |
!rx(ポートコントロールレジスタ) = W |
| MOV |
!OPTION, W |
- |
OPTION = W |
| TEST |
fr |
Z |
fr = 0 なら Zをセット |
| スキップ命令 |
| SB |
fr.bit |
- |
fr.bit = 1 のとき次の命令をスキップ |
| SNB |
fr.bit |
- |
fr.bit = 0のとき次の命令をスキップ |
| MOVSZ |
W, --fr |
- |
W = fr-1, 結果が0なら次の命令をスキップ |
| MOVSZ |
W, ++fr |
- |
W = fr+1, 結果が0なら次の命令をスキップ |
| SC |
|
C |
Cがセットされているとき次の命令をスキップ |
| DECSZ |
fr |
- |
fr--, 結果が0なら次の命令をスキップ |
| INCSZ |
fr |
- |
fr++, 結果が0なら次の命令をスキップ |
| ジャンプ命令 |
| CALL |
addr8 |
- |
addr8をコール |
| JMP |
addr9 |
- |
addr9にジャンプ |
| JMP |
W |
- |
PC(L) = W |
| JMP |
PC+W |
C,DC,Z |
PC(L) += W |
| RET |
|
- |
call命令からのリターン |
| RETP |
|
- |
call命令からのリターン。PA2:PA0の値をセット |
| RETI |
|
- |
割込みからのリターン |
| RETIW |
|
- |
割込みからのリターン。RTCC=RTCC-W |
| RETW |
lit |
- |
W = #litとしてリターン |
| SKIP |
|
- |
次の命令をスキップ |
| システムコントロール命令 |
| BANK |
n |
- |
バンク切り替え |
| IREAD |
|
- |
MODE:W の指すプログラムメモリの値を MODE:Wに読み出す |
| MODE |
n |
- |
MODE = n |
| PAGE |
n |
- |
PA2: PA0 = n |
| SLEEP |
|
TO,PD |
WDTをクリアし, スリープモードに入る |
|
|