今回は比較命令です。
2つの数を比較します。
正攻法だと、
Aレジスタの内容とBレジスタの内容を比べる時は、
SUB B
とします。(まだやっていませんが、Aレジスタ ー Bレジスタのことです。
引き算ですね。)
すると、
2つのレジスタが同じ値ならゼロになるので、
Zフラグが立ちます。(ゼロなら1になるやつでしたね。)
Bレジスタの方が大きければ、
CYフラグが立ちます。(マイナスなら1になるやつです。)
これでOKなのですが、
引き算をすると、Aレジスタの中身が変わってしまうので
いろいろと面倒な時があります。
そこで、
CP命令です。
例:
CP B
Aレジスタ ー Bレジスタの意味です。演算は行いますが
結果をAレジスタにいれません。
しかし、ZフラグやCYフラグなどの、フラグに与える影響はSUB命令と
同じです。
もう一つ例を、
CP 3
Aレジスタ ー 3です。
通常はジャンプ命令と組み合わせて使うそうですが、
まだジャンプ命令はやっていないので、
具体例はまた今度ということで。
マシンコード
A B C D E H L (HL) レジスタ
CP x BF B8 B9 BA BB BC BD BE
-----------------------------------------------------------
続き:
(IX+d) (IY+d) n レジスタ
CP x DD BE d FD BE d FE n
-----------------------------------------------------------
今日はここまで。
結局、引き算して、その結果がフラグに入る。
それをあとでゴニョゴニョするというだけみたいです。
次回はジャンプをやります。
フラグがでてきますので、前回のところを覚えておくことを
お勧めします^^
スポンサーリンク
MSX BASICの情報はこちらへ