2017-08-20 8 views
0

親愛なるStackOverflowのコミュニティアセンブリ言語-Addition

質問:与えられる2つの符号付きの数X = 01111110(ベース2)およびy = 00001000(ベース2).Explain X + Y動作をもたらす理由間違った結果に?

私の試み:(理解)サインの数の大きさについての私の研究から、x + yが間違っている唯一の方法は、答えがサインにオーバーフローする場合です。

助けてもらえますか?私は研究し、サインの大きさについては、s complement and twoの補完について読んでいますが、それでも非常に混乱しています。

私の質問を見るために時間と忍耐を取ってくれてどうもありがとう。

+1

結果が肯定的であるか否定的である場合に2つの肯定的な数値を追加すれば?あなたがこれらの2つの正の数を加えると、あなたは何を得ますか? –

答えて

1

符号付き整数が8ビット幅であると仮定すると、それはあなたの言った通りです。符号ビットでオーバーフローしています(2の補数で結果がラップアラウンドします)。

01111110 + 
00001000 = 
10000110 

あなたが見ることができるように、2つの正の値の加算(126および8を、彼らは両方の符号ビットがセットされていない持っている)が負の値になった(これは、符号ビットがセットされている。2の補数で、それはです - 122)、明らかに間違っています。