アセンブリ言語の命令、MOVF命令。
MOVF命令の解説。
書式;MOVF f,d
fは、汎用レジスタアドレス 0~127(0x00~0x7F)、または、ラベル。
dは、結果の上書き先が、ワーキングレジスタか、汎用レジスタの選択。
動作;f ➡ W or f
C;影響しない
DC;影響しない
Z;指定されたレジスタの内容が0の時➡1、それ以外➡0。
例;
1. 汎用レジスタ番地;0x30とする。
W 0x65 //命令実行前の値
f 0x96 //命令実行前の値(0x30番地の汎用レジスタの内容)
d 0 //書き込み先のレジスタ指定
MOVF 0x30,0 //命令実行
W 0x96 //命令実行後の値、dが0だから、こちらに上書き。
f 0x96 //命令実行後の値、こちらは、変化なし。
Z➡0。 //ステータスレジスタの値
2. 汎用レジスタ番地;0x30(ラベル;Data)とする。
W 0x55 //命令実行前の値
f 0x00 //命令実行前の値(0x30番地の汎用レジスタの内容)
d 1 //書き込み先のレジスタ指定
MOVF Data,1 //命令実行
W 0x55 //命令実行後の値、こちらは、変化なし。
f 0x00 //命令実行後の値、dが1だから、こちらに上書き。
Z➡1。 //ステータスレジスタの値
注;例2は、無意味な(読みだした汎用レジスタからの内容を、読みだした元の汎用レジスタに書き込む命令になる)命令に見えますが、
この命令の前にCLRF Data を実行してから、MOVF Data,1 を実行すると、どのレジスタにも影響を与えずに、Zフラグを1に設定することができる。