MOVF が第 2 オペランドなしで使用されている例をいくつか見つけました。たとえば、次のようになります。
;incorrect context restore
MOVF STATUS_Temp,w
MOVWF STATUS
MOVF W_Temp ;this may change the Z bit <------ !! MOVF with single operand !!
;in the Status register
;good context restore
MOVF STATUS_Temp,w
MOVWF STATUS
SWAPF W_Temp,f ;swap in place
SWAPF W_Temp,w ;swap with Wreg destination
(サンプルは PICKIT2 LPC ボードのユーザー ガイドから抜粋)
MPLAB SIM で簡単に実験すると、2 番目の「デスティネーション」オペランドはオプションであり、デフォルトでワーキング レジスタになることが示唆されています。すなわち
MOVF W_Temp,w
これは、厳密には可能ですが、コードを読みにくくする別の方法であるコーディングの「機能」の1つですか? それともそれ以上のものがありますか?