AND・OR・EOR・NOT 命令の使い方

IAIのSEL言語を使って論理演算を実行する命令です。
XSELやMSELで使用することができます。

  • AND:論理積
  • OR:論理和
  • EOR:排他的論理和
  • NOT:否定

命令の記述方法

どの命令も操作1と操作2の入力方法は同じです。操作1と操作2の論理演算を行って、計算結果が操作1の変数に代入されます。操作1と2では入力する数値のデータ型が異なるので注意が必要です。(操作1の数値に*が付いていた場合、変数Noの中身の数値をさらに変数Noとしてその中身の数値を扱うということです。)演算結果がゼロの場合、出力部はONします。

拡張条件
E
入力条件
N,Cnd
命令
Cmnd
操作1
Operand1
操作2
Operand2
出力部
Pst
AND変数NoデータZR
OR変数NoデータZR
EOR変数NoデータZR
NOT変数NoデータZR
TAG命令の記述仕様

計算結果は真理値表の通りです。

スポンサーリンク

AND命令のサンプルプログラム

論理積のサンプルプログラムです。74と153の論理積に加えて74と21の計算も行っています。表の下は計算結果です。2つのオペランドの2進数を比較して、両方が1の場合のみ計算結果が1となります。

EN,CndCmndOperand1Operand2PstComment
LET274変数2に74を代入
AND215374と153の論理積を計算
計算結果8は変数2に格納
LET321変数3に21を代入
AND2*374と21の論理積を計算
計算結果0を変数2に格納
AND命令のサンプルプログラム
AND 論理積の計算結果

OR命令のサンプルプログラム

論理和のサンプルプログラムです。74と153、74と21の計算を行っています。操作1と操作2のオペランドを比較して、どちらか片方が1の場合は計算結果が1となります。

EN,CndCmndOperand1Operand2PstComment
LET274変数2に74を代入
OR215374と153の論理和を計算
計算結果219は変数2に格納
LET321変数3に21を代入
OR2*374と21の論理和を計算
計算結果95を変数2に格納
OR命令のサンプルプログラム
OR 論理和の計算結果
スポンサーリンク

EOR命令のサンプルプログラム

排他的論理和のサンプルプログラムです。74と153、74と21の計算を行っています。2つのオペランドを比較して、両方のビットが1もしくは両方のビットが0の場合は計算結果が0、それ以外の計算結果は1となります。

EN,CndCmndOperand1Operand2PstComment
LET274変数2に74を代入
XOR215374と153の排他的論理和を計算
計算結果211は変数2に格納
LET321変数3に21を代入
XOR2*374と21の排他的論理和を計算
計算結果95を変数2に格納
EOR命令のサンプルプログラム
EOR 排他的論理和の計算結果

NOT命令のサンプルプログラム

否定のサンプルプログラムです。操作2の数値を反転して操作1の変数に格納します。10進数の74の否定を計算しているのですが、2進数で考えるとわかりやすくなります。2進数の場合74は1001010なので全てのビットを反転すると0110101となります。答えとなる反転結果は53となります。

EN,CndCmndOperand1Operand2PstComment
NOT27474の否定を計算
計算結果53を変数2に格納
NOT命令のサンプルプログラム
NOT 否定の計算結果