: [問題] 加算・減算のオーバーフロー
: [付録] 加算・減算および論理演算 (復習)
: [付録] 加算・減算および論理演算 (復習)
[問題] 加算・減算
本章では加算・減算および論理演算 (AND 、OR 等) を
取り扱う。
やはり論理回路の復習が多くなるだろう。
MIPS CPU (あるいはシミュレータ SPIM) が、
32 ビットの数値の加算、減算等の算術演算
を行えることはいままで見てきたとおりである。
これらがハードウェアとしてどのように実現されているかを学ぶため、
まず 6 ビットの数値に対する加算・減算を手計算で行なってみよう。
[問題]
- 010101 + 000101 の計算を筆算で行なってみよ。答えを求めたあと、
その計算が 10 進数の何に対応していたか確認してみよ。
- 010101 + 001111 について、上と同様のことを行なえ。
- 000010 + 111010 について、上と同様のことを行なえ。
(ただし、符号つき数の計算であるとする。)
- 000010 111010 について、上と同様のことを行なえ。
ただし、 の計算は のように加算として取り扱う。() は
前回の「正負の反転」を用いる。
加算は下位ビット (least significant bit : LSB) から
順に計算して行けば良く、このとき桁上がりが上位ビットに伝播してゆくことに
注意しよう。
また、減算は事前に正負の反転を行なえば加算と同じアルゴリズムで
実現できることもわかる。
平成16年12月13日