ニャオニャオ21世紀

レトロゲーム(MSX、PCエンジン、セガサターン)と、MSXぽいアプリ開発と、最新ゲーム(PS4、SWITCH)、身体(身体意識など)、ライフハックほか雑記を綴っています

MSXマシン語入門(Z80 アセンブラ・機械語) 勉強レポート 第21回 比較命令

スポンサーリンク

今回は比較命令です。

 

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          (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

-----------------------------------------------------------

 

今日はここまで。

結局、引き算して、その結果がフラグに入る。

それをあとでゴニョゴニョするというだけみたいです。

 

次回はジャンプをやります。

フラグがでてきますので、前回のところを覚えておくことを

お勧めします^^

 

スポンサーリンク

 

 

www.nyaonyao21.com

「ニャオニャオ21世紀は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」

当サイトは第三者配信の広告サービス「Google Adsense グーグルアドセンス」を利用しています。 広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。 Cookie(クッキー)を無効にする設定およびGoogleアドセンスに関する詳細は「広告 – ポリシーと規約 – Google」をご覧ください