プロが教えるわが家の防犯対策術!

アセンブリ言語のcasl2についての質問なのですが、データ領域(DATA番地)にあらかじめ記憶されている10進数のデータが奇数か偶数かを判定するプログラムをマスク処理を用いて作成せよ。10進数のデータが0や負の場合も考慮せよ。という問題がわかりません。
そもそもマスク処理についてあまり理解できておらずどのようにすればいいのかわかりません。わかる方がいたら解説お願いします。

A 回答 (1件)

例えば13という十進数があるとすると、二進では1101です。


マスクデータを1110として、1101に対してそのマスク処理を実行することにより結果は0001となります。つまりマスクデータで1が立っているビットはマスクされて(隠されて)0となり、0が立っているビットはそのまま表示となる(アセンブラによってはマスクの定義が逆の場合もあるかもしれません。1が立っていれば表示で、0が立っていればマスクという具合に。これはアセンブラによるのでcasl2でのマスクの定義を調べてください)。
また6という十進数があると、その二進表現は0110で、同じようにマスク処理を実行すると、0000になります。
この結果をみればわかりますが、マスク処理後の結果が0001になれば元データは奇数、0000になれば元データは偶数です。

ここではデータを仮に4ビットとしましたが、そこは適宜casl2に合うように調整してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!