Transcript パート08

コンピュータアーキテクチャ
第8回
1
演算結果とフラグ値生成

算術論理演算,シフト演算などの結果を反映するフラグレ
ジスタ (OF, SF, ZF) の各値はどのように設定されるの
か?
* は検出できるのか?
– 例えば,なぜ
– 各命令ごとに設定されたフラグへの反映をどう実現するのか?

今回の内容
– フラグレジスタの各値の決定方法





算術加減算のオーバフロー判定
論理加減算のオーバフロー判定
算術比較命令の判定
論理比較命令の判定
フラグレジスタ生成回路例
– フラグレジスタ計算例題演習
2
ハードウェアモデルにおける位置付け
*
*
*
3
演算回路の構成
*
*
*
*
4
N, Z, V, C 信号
*
5
フラグレジスタ (OF, SF, ZF) の
設定における注意
6
算術加減算とオーバフロー (1)
*
*
7
算術加減算とオーバフロー (2)
8
演習問題 8.1
9
論理加減算とオーバフロー (1)
*
*
*
10
論理加減算とオーバフロー (2)
11
演習問題 8.2
12
算術比較命令の判定 (1)
符号つき2進数の減算によって得られる N, Z, V, C 信号の値を用いた,
整数の大小関係の判定方法
*
*
*
*
13
算術比較命令の判定 (2)
14
演習問題 8.3
15
論理比較命令の判定
符号なし2進数の減算によって得られる N, Z, V, C フラグ
の値を用いた,整数の大小関係の判定方法
*
16
各演算結果のフラグレジスタ
OF, SF, ZF への反映


プロセッサ(アーキテクチャ)ごとに設定が異なる
COMET II の場合(例)
– 算術加減算命令


*
結果が
の範囲をこえたとき OF = 1
結果を表す値の最上位ビットが 1 のとき SF = 1
– 算術左シフト命令

最後に押し出された値を OF フラグに格納
– 算術比較命令


OF フラグは常に 0
第 1 オペランドが第 2 オペランドより小さいとき SF =1
– ストア命令,ロードアドレス命令

フラグへの反映なし
17
COMET II のフラグレジスタ OF, SF
の真理値表
18
COMETⅡのフラグレジスタ生成回路
セレクタは制御信号がハイレベルで
*
19
例題 (フラグ)
20
例題 (フラグ) 回答例(1)
21
例題 (フラグ) 回答例(2)
22
例題 (フラグ) 回答例(3)
23
例題 (フラグ) 回答例(4)
24
例題 (フラグ) 回答例(5)
25
演習問題 8.4
26