比較動作の確認
先日プログラムを作っている時、分岐プログラムで少し混乱をしていました。あまり理解してないのでこの機会に実験をしておこうとシュミレータを作動させ、動作をチエックしました。そんなに大げさではないのですが「勘違いで作動しない、のを何回もしていてはまずい!」ので少し書き出してみました。
☆ Wとレジスタが同じ時は[Z]フラッグが立つ。
☆ Wが小さい時は[C]フラッグが立つ。
☆ Wが大きい時は[C]フラッグは立たない。たったこれだけだが、間違うと酷いことになる!
プログラム的には[F-Wが実行]され、結果は[F又はWに移される](表では"SUBWF to W"とした)。普通はZフラッグのチエックで良いのだがCフラッグを使うと便利な時がある。
Cフラッグは「あまり変更されないフラッグ」なので、少し離れたプログラムでもCフラッグが残っていて利用出来る事がある。例えば、ADD・SUBやRRF・RLFのコマンド以外は変化しないのでこれを避ければ、忘れた頃にも使える!2007/MAY/12
- 比較の時変化するフラッグ - F(Register) W SUBWF to W C(Flag) Z(Flag) 9 7 2 1 0 8 7 1 1 0 7 7 0 1 1 6 7 255 0 0 5 7 254 0 0
もどる [MAIN MENU]