|
|
|
|
|
|
|
|
|
目次
CPU章トップ|誰にでもわかるCPUの仕組み
第1節:CPUとは何か
第2節:命令の実行サイクル
第3節:レジスタの役割
第4節:メモリとCPUの関係
第5節:アドレス指定とメモリマップ
第6節:整数演算とフラグ
第7節:浮動小数点演算
整数演算とフラグ
CPUが最も基本的に行う計算は
整数演算です。
加算・減算・論理演算・シフト演算は、
すべてCPU内部の演算装置で処理されます。
ALU(算術論理演算装置)の役割
整数演算は
ALU(Arithmetic Logic Unit)で行われます。
- 加算・減算
- AND / OR / XOR などの論理演算
- 左シフト・右シフト
演算結果はレジスタに格納されると同時に、
フラグレジスタが更新されます。
フラグレジスタとは何か
フラグレジスタは、
演算結果の「状態」を示すための
特別なレジスタです。
数値そのものではなく、
条件判断に使われる情報を保持します。
代表的なフラグの種類
| フラグ | 意味 |
|---|---|
| Zero(Z) | 演算結果が 0 のときに立つ |
| Carry(C) | 桁あふれ(繰り上がり)が発生したとき |
| Sign(S) | 結果が負の値のとき |
| Overflow(V) | 符号付き演算で範囲外になったとき |
フラグと条件分岐
フラグは
条件分岐命令で利用されます。
たとえば、
- 結果が 0 なら分岐
- キャリーが立っていれば分岐
- 負の値なら分岐
といった判断が、
フラグの状態を見るだけで行えます。
2の補数による負数表現
CPUの整数演算では、
2の補数が使われます。
2の補数を使うことで、
加算回路だけで
減算や符号付き演算を
統一的に処理できます。
5 = 00000101 反転 = 11111010 +1 = 11111011 (-5)
この仕組みにより、
ALUの構造は
非常にシンプルになります。
符号付きと符号なしの違い
同じビット列でも、
- 符号なし整数
- 符号付き整数
として解釈すると、
意味が変わります。
Overflow フラグは、
特に符号付き演算で
重要な役割を持ちます。
第6節のまとめ
- 整数演算は ALU で行われる
- 演算結果に応じてフラグが更新される
- フラグは条件分岐の判断材料になる
- 2の補数により演算回路が単純化される