【記号説明】
下記説明で使用している記号、略号の意味は下記による。
記号 |
意味内容 |
記号 |
意味内容 |
f |
レジスタのアドレス |
Wreg |
ワーキングレジスタ |
b |
ビットのアドレス(0-7) |
k |
リテラルデータ(1byte) |
x |
Don't care(0にしておく) |
d |
格納先指定(0 or 1) |
label |
ラベル名 |
PC |
プログラムカウンタ |
dest |
dと同じ意味 |
|
|
[ ] |
省略可能 |
( ) |
内容 |
< > |
レジスタビット位置 |
|
書式 [label] CALL k
オペランド k:リテラルデータ(00〜2048)
実行内容 (PC)+1 → スタック
k → PC<10:0>
(PCLATH<4:3>) → PC<12:11>
影響フラグ 無し
サイクル 2サイクル
機械語 1 0 0 k k k k k k k k k k k
実行内容 サブルーチンをコールする。まず戻り番地
(PC+1)をスタックに格納し、11ビットのリテラル
アドレスをPCレジスタに上書きし、さらにPCの
上位にPCLATHを上書きすることでジャンプ
します。
【GOTO】 指定番地にジャンプする
書式 [label] GOTO k
オペランド k:リテラルデータ(00〜2048)
実行内容 k → PC<10:0>
(PCLATH<4:3>)→ PC<12:11>
影響フラグ 無し
サイクル 2サイクル
機械語 1 0 1 k k k k k k k k k k k
実行内容 無条件で指定番地へジャンプする。
11ビットのリテラルアドレスをPCレジスタに
上書きし、さらにPCの上位にPCLATHを
上書きすることでジャンプします。
【RETURN】 サブルーチンから無条件復帰する
書式 [label] RETURN
オペランド 無し
実行内容 スタック → PC
影響フラグ 無し
サイクル 2サイクル
機械語 0 0 0 0 0 0 0 0 0 0 1 0 0 0
実行内容 サブルーチンから無条件復帰する。
スタックに格納されていた戻り番地を
PCレジスタに上書きすることでジャンプ
します。
【RETFIE】 割り込みから復帰する
書式 [label] RETFIE
オペランド 無し
実行内容 スタック → PC
1 → GIE
影響フラグ 無し
サイクル 2サイクル
機械語 0 0 0 0 0 0 0 0 0 0 1 0 0 1
実行内容 割り込み処理から復帰する。
スタックに格納されていた戻り番地を
PCレジスタに上書きすることでジャンプ
し、同時に、グローバル割り込み許可
ビットであるGIEに1をセットして割り込み
を許可します。
【RETLW】 リテラルデータをWregにセットして復帰する
書式 [label] RETLW k
オペランド k:リテラルデータ(0〜255)
実行内容 k → Wreg 、 スタック → PC
影響フラグ 無し
サイクル 2サイクル
機械語 1 1 0 1 x x k k k k k k k k
実行内容 サブルーチンから復帰する。その時
Wregにリテラルデータを持って戻る。
まず8ビットのリテラルデータをWregに
ロードし、次にスタックに格納されていた
戻り番地をPCレジスタに上書きすることで
ジャンプします。