加算器のときと同様に「1 ビットの ALU」を構成し、
それを組み合わせることで「 ビットの ALU」が実現できる。
[AND、OR、加算を行なう ALU]
まず、AND、OR、加算を行なう 1 ビットの ALU は図 3 のように 構成される。
操作入力 の値によって、出力
の値が AND、OR、加算のいずれかに
選択される。全加算器のためにキャリーイン
および
キャリーアウト
が存在することにも注意しよう。
この 1 ビット ALU を 32 個組み合わせれば、32 ビット ALU が構成される (図 4)。
加算器の時には、最下位ビット (図 4 では と
)
の計算にはキャリーインを考慮する必要はなかったが、
ここではキャリーイン
が存在する。それは減算を
行なう ALU を構成したいためである。
それを次節でみよう。
[減算のための ALU の拡張]
32 ビットの符号付き数
と
の減算
は、
とすることで加算にすることができた。
ただし、
は
の符号を反転することで得られる。
符号反転は「ビット反転をして 1 を加える」ことで実現される
(付録 A.2 参照)。
のビット反転を行なえるようにした 1 ビット ALU は
図 5である。
また、この ALU を 32 個繋げたのが図 6 である。
[問題]