とっておきの「夜食」教えて下さい

ALUのオーバーフローフラグの生成条件の証明などの問題

A,Bを2の補数による符号付きnビット2進数の整数入力とする。nビットALUの演算結果により生成される条件判定フラグ、すなわちN(Negative)、
V(oVerflow)フラグについて書の問に答えよ。ただし、ALUの演算結果は(F[n-1]・・・F[0])とし、ALUを構成する加算回路の桁上げ出力に
おいて、最上位の桁上げ出力はC[n]、その1ビット下位の桁上げ出力をC[n-1]とする。

(1)オーバーフローフラグV(oVerflow)を生成する条件が"C[n]xorC[n-1]=1"となる事を証明せよ。
(2)上記ALUを用いた算術比較演算において、A<Bの判定条件がオーバーフローの有無に関係なく、"N xor V=1"となる事を証明せよ。
------------------------------------------------------------
このような問題があるんですが、解答は分かりません。
証明せよとは一体どのように記述すればいいんでしょうか?
あと、(2)は何故"N xor V=1"と表せるんでしょうか?

一応、自分で考えたのはこんな感じです。
(1)
加算時のオーバーフローの条件は、
符号がA,B共に負、つまりC[n]が1でかつ、nビット目が1にならずに、正の値になってしまう数であるC[n-1]=0の場合と、
符号がA,B共に正、つまりC[n]が0でかつ、nビット目が1にならずに、負の値になってしまう数であるC[n-1]=1の場合である。
よって、オーバーフローフラグが生成される条件をC[n]xorC[n-1]=1と表すことができる。

(2)
演算結果が負でかつ、オーバーフローが発生していなければA<Bだから?分かりません。

A 回答 (1件)

(1) はちょっと大雑把なところはあるけど大筋で OK. 丁寧に書くなら, 「符号がA,B共に負、つまりC[n]が1」を


「A, B ともに負」→「どちらも符号ビット (つまり最上位ビット) が 1」→「加えると最上位からの桁上げが出る」
とすれば「より文句のつけにくい解答」になるでしょう.
(2) はオーバーフローの有無で場合分けしてやるのが簡単な気がします. 確認してませんが.
    • good
    • 0

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


おすすめ情報