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