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

CASLの問題で基本的なところが分かりません。
GR2に#A000という数値が格納されているとします。
この#A000は論理的な数値です。(算術的ではありません)
そして、
LD GR1,GR2
という命令を実行した直後にサインフラグは立ちますか?

つまり、お伺いしたいことは、
「メモリの1語に格納されている16ビットのうちの一番左のビットはどんな場合でも符号ビットを意味するのか?」
ということです。

A 回答 (1件)

>この#A000は論理的な数値です


論理値か算術値かは“そのデータ”だけでは解らず通常は
コンピュータは符号なしの0~65535の有効データと評価し、
符号ビットを評価する命令語がデータフェッチするとき初めて
サインフラグが意味を持ちます。

LD GR1,GR2・・・演算ではなく以前の状態無関係の代入のため
OR GR1,GR2・・・16ビット枠でビット目ごと2つの自然数(0,1)データをそれぞれ評価し桁方向は考慮しないため
AND GR1,GR2・・・同上
XOR GR1,GR2・・・同上

の理由からサインフラグはこの時“0”になるかと思いますよ。
ADDL等の算術はもちろん、SLL,SLA,などのシフト、ローテートは
算術、論理どちらにしても、“桁を考慮した演算に分類”するので
サインフラグに反映すると思われますよ。
    • good
    • 0

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