アセンブリ言語の命令、COMF命令。
COMF命令の解説。
書式;COMF f,d
fは、汎用レジスタアドレス 0~127(0x00~0x7F)、または、ラベル。
dは、結果の上書き先が、ワーキングレジスタか、汎用レジスタの選択。
動作; f 反転 ➡ W or f
fの内容の2進数を反転して、格納先に上書きする。
ステータスレジスタへの影響
C;影響しない
DC;影響しない
Z;計算結果が0の時➡1、それ以外➡0。
例;
1. 汎用レジスタ番地;0x30とする。
W 0x65 //命令実行前の値(ワーキングレジスタの内容)
f 0x16 //命令実行前の値(0x30番地の汎用レジスタの内容)
d 0 //格納先の指定
BCF 0x30,0 //命令実行
f 0b00010110 //0x16の2進数
0b11101001 //汎用レジスタの内容を反転する、結果は0ではない。
W 0xE9 //命令実行後の値、dが0だから、こちらに上書き。
f 0x16 //命令実行後の値、こちらは、変化なし。
Z➡0。 //ステータスレジスタの値
2. 汎用レジスタ番地;0x30(ラベル;Data)とする。
W 0x65 //命令実行前の値(ワーキングレジスタの内容)
f 0xFF //命令実行前の値(0x30番地の汎用レジスタの内容)
d 1 //格納先の指定
BCF Data,1 //命令実行
f 0b11111111 //0xFFの2進数
0b00000000 //汎用レジスタの内容を反転する、結果は0。
W 0x65 //命令実行後の値、こちらは、変化なし。
f 0x00 //命令実行後の値、dが1だから、こちらに上書き。
Z➡1。 //ステータスレジスタの値