アセンブリ言語の命令、INCFSZ命令。
INCFSZ命令の解説。
書式;INCFSZ f,d
fは、汎用レジスタアドレス 0~127(0x00~0x7F)、または、ラベル。
dは、結果の上書き先が、ワーキングレジスタか、汎用レジスタの選択。
動作;f + 1 ➡ W or f
汎用レジスタ内容に1を加算し、結果をdで指定されたレジスタに上書き。
汎用レジスタ内容に1を加算した結果が0なら、次の命令をNOPに変えて実行する。
ステータスレジスタへの影響
C;影響しない
DC;影響しない
Z;影響しない
例;
1. 汎用レジスタ番地;0x30とする。
W 0x65 //命令実行前の値
f 0x96 //命令実行前の値(0x30番地の汎用レジスタの内容)
d 0 //書き込み先のレジスタ指定
INCFSZ 0x30,0 //命令実行
W 0x97 //命令実行後の値、dが0だから、こちらに上書き。
f 0x96 //命令実行後の値、こちらは、変化なし。
結果が0ではないので、次の命令をそのまま実行する。
2. 汎用レジスタ番地;0x30(ラベル;Data)とする。
W 0x65 //命令実行前の値
f 0xFF //命令実行前の値(0x30番地の汎用レジスタの内容)
d 1 //書き込み先のレジスタ指定
INCFSZ data,1 //命令実行
W 0x95 //命令実行後の値、こちらは、変化なし。
f 0x00 //命令実行後の値、dが1だから、こちらに上書き。
結果が0なので、次の命令をNOPに変えて実行する。