next up previous
: [問題] 加算・減算のオーバーフロー : [付録] 加算・減算および論理演算 (復習) : [付録] 加算・減算および論理演算 (復習)


[問題] 加算・減算

本章では加算・減算および論理演算 (AND 、OR 等) を 取り扱う。 やはり論理回路の復習が多くなるだろう。

MIPS CPU (あるいはシミュレータ SPIM) が、 32 ビットの数値の加算、減算等の算術演算 を行えることはいままで見てきたとおりである。 これらがハードウェアとしてどのように実現されているかを学ぶため、 まず 6 ビットの数値に対する加算・減算を手計算で行なってみよう。

[問題]

  1. 010101 + 000101 の計算を筆算で行なってみよ。答えを求めたあと、 その計算が 10 進数の何に対応していたか確認してみよ。
  2. 010101 + 001111 について、上と同様のことを行なえ。
  3. 000010 + 111010 について、上と同様のことを行なえ。 (ただし、符号つき数の計算であるとする。)
  4. 000010 $-$ 111010 について、上と同様のことを行なえ。 ただし、$X-Y$ の計算は $X+ (-Y)$ のように加算として取り扱う。($-Y$) は 前回の「正負の反転」を用いる。
加算は下位ビット (least significant bit : LSB) から 順に計算して行けば良く、このとき桁上がりが上位ビットに伝播してゆくことに 注意しよう。

また、減算は事前に正負の反転を行なえば加算と同じアルゴリズムで 実現できることもわかる。


平成16年12月13日