ニャオニャオ21世紀

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

MSXマシン語入門(Z80 アセンブラ・機械語) 第25回 論理演算の基本 勉強レポート






 今回は論理演算について。

論理演算はBASICでもよく使われますねぇ〜。

ANDとかORとかいうヤツです。

マシン語では、グラフィックとか掛け算、割り算に代わるような

計算をするのによく使われるそうです。

 

私は一応知っていますが、内容をすぐ忘れてしまうので、

しっかり復習します^^

それでは本を読みながらまとめていきます。

 

 

勉強にはこの本を使います。

MSXマシン語入門講座
MSXマシン語入門講座
posted with amazlet at 18.09.03
湯浅 敬
アスキー
売り上げランキング: 1,383,851

 

 

論理演算の代表的なものが4つ。

NOT、AND、OR、XOR

です。

ふむふむ。

 

NOT(ノット)

 NOTは否定を行う演算。

NOT 1 = 0

NOT 0 = 1

 

0と1だけ(2進数だから)の世界だと否定するということは、逆になるということ。

 1の逆は0で、

0の逆は1なので、

上の式が成り立ちます。

 

表にするとこうなります。 

 

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

NOT       0      =      1

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

NOT            =      0

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

 

 

 

まぁわかります^^

逆にするだけです。

NOTはちょっと特殊かもしれないですね。

 

論理積 AND(アンド)

AND、OR、XOR はちょっとした計算みたいな感じです。

2つの値があって、それを計算して1つの値をだす感じです。

具体的にみたほうが早いです。

 

ANDは論理積といいます。

1 AND 1 = 1

1 AND 0 = 0

 

2つの値が両方とも1ならば、1になります。

2つの値のうち、どちらかが0ならば、0になります。

表にするとこうなります。

 

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

X AND  Y      =      Z

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

0           0      =      0

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

0                =      0

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

1           0      =      0

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

1                =      1

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

 

 

論理演算 OR(オア)

ORは論理和といいます。

0  OR  0 = 0

0  OR  1 = 1

 

どちらか一方が1なら、1です。

両方が0なら0です。

表にするとこうなります。

 

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

X  OR    Y      =      Z

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

0           0      =      0

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

0                =      1

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

1           0      =      1

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

1                =      1

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

 

 

 

論理演算 XOR(エックスオア

XORは排他的論理和といいます。

0  XOR  1 = 1

1  XOR  1 = 0

 

一方が1で、他方が0のとき1です。

両方同じだと0になります。

 

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

X  XOR  Y      =      Z

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

0           0      =      0

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

0                =      1

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

1           0      =      1

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

1                =      0

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

 

 まとめ

 本当にややこしい;

まぁ覚えるだけといってしまえばそこまでなんですけどねw

暗記しましょう!

 

ちなみにBASICで IF文にANDとかORを使うことがありますが、

あれも実はこの論理演算なんです。

 

IF X>100 AND X<200 THEN ~~~~

などと座標の範囲指定をしたりしますが、

 

X>100が真なら   -1

X<200が真なら   -1 

補足

関係演算子  (= とか > とか < )は

2つの値を比較し、真(-1)、偽(0)を返します。

(右辺) = (左辺)  は 、右辺と左辺が等しいと真(-1)、違うと偽(0)を返し、

(右辺) > (左辺) なら、右辺が左辺より大きいと真(-1)、小さいと偽(0)を返します。

 

ということは

IF   -1 AND  -1   THEN ~~~~

とか

IF   -1   AND   0    THEN ~~~~

となりまして、

ANDの計算の結果が 真か偽(0以外か 0)によってTHEN以降の命令がされているのです。

(-1ってどうなるの?と思うかもしれませんがビットに直すとわかります。いずれ書きます。)

 

ちょっと横道にそれましたが、面白いなぁ〜と感じます^^

論理演算を使うことで、ちょっとプログラム的に凝ったことができる

のかな?

面倒だけど、暗記、暗記!

次回は論理演算をマシン語でやるのをやります。

8ビットの論理演算です。

なんかかっこいいですよね!

 

では〜。

 

つづきはこちら。

www.nyaonyao21.com

 


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

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