PICのアセンブラ命令一覧
バイト処理命令
| 命令 | 機能 | 影響を受けるフラグ | 命令サイクル数 |
|---|---|---|---|
| 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 へ格納 | 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 |
オペランド
- f:レジスタファイルのアドレス
- W:ワーキングレジスタ
- b:ビットの位置(0〜7)
- k:リテラル(定数データ)
- d:格納先 0 なら W へ格納、1 なら指定のレジスタファイルに格納
フラグ(STATUS レジスタ)
- Z:ゼロステータス
- C:キャリーステータス
- DC:下位4ビットのキャリーステータス
PIC16F87レジスタ
| Bank 0 | Address | Bank 1 | Address | Bank 2 | Address | Bank 3 | Address |
|---|---|---|---|---|---|---|---|
| Indirect addr | 00h | Indirect addr | 80h | Indirect addr | 100h | Indirect addr | 180h |
| TMR0 | 01h | OPTION_REG | 81h | TMR0 | 101h | OPTION_REG | 181h |
| PCL | 02h | PCL | 82h | PCL | 102h | PCL | 182h |
| STATUS | 03h | STATUS | 83h | STATUS | 103h | STATUS | 183h |
| FSR | 04h | FSR | 84h | FSR | 104h | FSR | 184h |
| PORTA | 05h | TRISA | 85h | WDTCON | 105h | 使用不可 | 185h |
| PORTB | 06h | TRISB | 86h | PORTB | 106h | TRISB | 186h |
| 使用不可 | 07h | 使用不可 | 87h | 使用不可 | 107h | 使用不可 | 187h |
| 08h | 88h | 108h | 188h | ||||
| 09h | 89h | 109h | 189h | ||||
| PCLATH | 0Ah | PCLATH | 8Ah | PCLATH | 10Ah | PCLATH | 18Ah |
| INTCON | 0Bh | INTCON | 8Bh | INTCON | 10Bh | INTCON | 18Bh |
| PIR1 | 0Ch | PIE1 | 8Ch | EEDATA | 10Ch | EECON1 | 18Ch |
| PIR2 | 0Dh | PIE2 | 8Dh | EEADR | 10Dh | EECON2 | 18Dh |
| TMR1L | 0Eh | PCON | 8Eh | EEDATH | 10Eh | Reserved | 18Eh |
| TMR1H | 0Fh | OSCCON | 8Fh | EEADRH | 10Fh | Reserved | 18Fh |
| T1CON | 10h | OSCTUNE | 90h | 汎用レジスタ 16Bytes |
110h | 汎用レジスタ 16Bytes |
190h |
| TMR2 | 11h | 使用不可 | 91h | 111h | 191h | ||
| T2CON | 12h | PR2 | 92h | 112h | 192h | ||
| SSPBUF | 13h | SSPADD | 93h | 113h | 193h | ||
| SSPCON | 14h | SSPSTAT | 94h | 114h | 194h | ||
| CCPR1L | 15h | 使用不可 | 95h | 115h | 195h | ||
| CCPR1H | 16h | 96h | 116h | 196h | |||
| CCP1CON | 17h | 97h | 117h | 197h | |||
| RCSTA | 18h | TXSTA | 98h | 118h | 198h | ||
| TXREG | 19h | SPBRG | 99h | 119h | 199h | ||
| RCREG | 1Ah | 使用不可 | 9Ah | 11Ah | 19Ah | ||
| 使用不可 | 1Bh | 9Bh | 11Bh | 19Bh | |||
| 1Ch | CMCON | 9Ch | 11Ch | 19Ch | |||
| 1Dh | CVRCON | 9Dh | 11Dh | 19Dh | |||
| 1Eh | 使用不可 | 9Eh | 11Eh | 19Eh | |||
| 1Fh | 9Fh | 11Fh | 19Fh | ||||
| 汎用レジスタ 96Bytes |
20h | 汎用レジスタ 80Bytes |
A0h | 汎用レジスタ 80Bytes |
120h | 汎用レジスタ 80Bytes |
1A0h |
| - | - | - | - | ||||
| - | - | - | - | ||||
| - | EFh | 16Fh | 1EFh | ||||
| - | accesses 70h-7Fh |
F0h | accesses 70h-7Fh |
170h | accesses 70h-7Fh |
1F0h | |
| - | - | - | - | ||||
| - | - | - | - | ||||
| 7Fh | FFh | 17Fh | 1FFh |