(OF, SF, ZF) = 010

Download Report

Transcript (OF, SF, ZF) = 010

演習問題 4.1 解答
(GR1) =
(OF, SF,
(GR1) =
(OF, SF,
(OF, SF,
(GR1) =
(OF, SF,
(OF, SF,
(GR1) =
(OF, SF,
(OF, SF,
(GR1) =
(OF, SF,
(OF, SF,
(GR1) =
(OF, SF,
(OF, SF,
0
ZF)
1
ZF)
ZF)
2
ZF)
ZF)
3
ZF)
ZF)
4
ZF)
ZF)
5
ZF)
ZF)
= 000
= 010
= 000
= 010
= 100
= 010
= 100
= 010
= 100
= 010
= 000
(GR1) = 6
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 7
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 8
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 9
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 10
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 11
(OF, SF, ZF)
(OF, SF, ZF)
= 010
= 000
= 010
= 100
= 010
= 000
= 010
= 100
= 010
= 100
(GR1) = 12
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 13
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 14
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 15
(OF, SF, ZF)
(OF, SF, ZF)
(GR1) = 16
(OF, SF, ZF)
= 010
= 100
= 010
= 100
= 010
= 101
= 010
= 001
= 001
= 010
= 100
1
演習問題 4.2 解答例
算術右シフト演算命令では端数の切り捨て・切り上げは発生
するが,オーバフローは発生しない.一方,算術左シフト演
算命令では,シフトによって符号ビットと異なるビットがレジス
タから消失するとき,オーバフローが発生する.しかし,その
ことは必ずしもフラグレジスタの OF に反映されない.符号
ビットが 0 のとき,レジスタから最後に消失したビットが 1
ならば,オーバフローの発生が OF の値 1 として反映さ
れる.また,符号ビットが 1 のとき,最後に消失したビットが
0 ならば,オーバフローの発生が OF の値 0 として反映
される.
2
演習問題 4.3 解答例
レジスタ GR1 の内容は
(GR1) = (1010 1010 1101 0100)2
である.各命令の実行の結果は以下の通り.
SLA GR1, 3 では
(GR1) = (1101 0110 1010 0000)2 = (-10592)10
となり,フラグレジスタは (OF SF ZF) = (0 1 0) となる.
SRA GR1, 3 では
(GR1) = (1111 0101 0101 1010)2 = (-2726)10
となり,フラグレジスタは (OF SF ZF) = (1 1 0) となる.
SLL GR1, 3 では
(GR1) = (0101 0110 1001 0000)2 = (22176)10
となり,フラグレジスタは (OF SF ZF) = (1 0 0) となる.
SRL GR1, 3 では
(GR1) = (0001 0101 0101 1010)2 = (5466)10
となり,フラグレジスタは (OF SF ZF) = (1 0 0) となる.
3
演習問題 4.4 解答例
ROF1
LOOP
INC
PASS
QUIT
W
N
START
LAD
LAD
LAD
LAD
LD
SLL
JOV
LAD
JUMP
LAD
CPA
JPL
LD
LAD
CPA
JZE
JUMP
ST
RET
DC
DS
END
GR0,16
GR1,0
GR2,0
GR6,0
GR7,W
GR7,1
INC
GR2,0
PASS
GR2,1,GR2
GR6,GR2
PASS
GR6,GR2
GR1,1,GR1
GR1,GR0
QUIT
LOOP
GR6,N
#6A7E
1
; 処理済みビット数をカウント
; ランの長さをカウント
; 最大値ホルダ
; 1 ビット押し出し
; OF の値によって分岐
; 0 ならばクリア
;
;
;
;
1 ならばインクリメント
現在の最大値と候補のランを比較して分岐
現在の最大値の方が大きいならパス
そうでなければ最大値の入れ替え
演習問題 4.5 解答
(GR1)
(GR1)
(GR1)
(GR1)
(GR1)
(GR1)
(GR1)
(GR1)
(GR1)
=
=
=
=
=
=
=
=
=
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0011
0000
0011
0000
0010
0011
0000
0010
0000
0101
0101
0011
0011
1101
0010
0010
1010
0100
=
=
=
=
=
=
=
=
=
#0035
#0005
#0033
#0003
#002D
#0032
#0002
#002A
#0004
5