• ベストアンサー

基本情報 CASL

CASLの問題で基本的なところが分かりません。 GR2に#A000という数値が格納されているとします。 この#A000は論理的な数値です。(算術的ではありません) そして、 LD GR1,GR2 という命令を実行した直後にサインフラグは立ちますか? つまり、お伺いしたいことは、 「メモリの1語に格納されている16ビットのうちの一番左のビットはどんな場合でも符号ビットを意味するのか?」 ということです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#50176
noname#50176
回答No.1

>この#A000は論理的な数値です 論理値か算術値かは“そのデータ”だけでは解らず通常は コンピュータは符号なしの0~65535の有効データと評価し、 符号ビットを評価する命令語がデータフェッチするとき初めて サインフラグが意味を持ちます。 LD GR1,GR2・・・演算ではなく以前の状態無関係の代入のため OR GR1,GR2・・・16ビット枠でビット目ごと2つの自然数(0,1)データをそれぞれ評価し桁方向は考慮しないため AND GR1,GR2・・・同上 XOR GR1,GR2・・・同上 の理由からサインフラグはこの時“0”になるかと思いますよ。 ADDL等の算術はもちろん、SLL,SLA,などのシフト、ローテートは 算術、論理どちらにしても、“桁を考慮した演算に分類”するので サインフラグに反映すると思われますよ。

関連するQ&A

専門家に質問してみよう