機械語の命令実行2 (ハードウェア分野)
平成19年春期 問1 問題確認
解説 |
単純な機械的作業で解ける問題.確実に得点したい. 最後の穴は命令の途中で空いているが,全パターン代入して見ればすぐ答えは得られる. (正答がアであるのと,穴の位置が最後に近いから楽である.) 以下,解説での表記の凡例を示す. ((凡例)) op 命令コード r レジスタ番号 v レジスタ番号又は定数 命令後レジスタ (1) 3021 op 30 r 2 v 1 8361 1000 0011 0110 0001 1234 0001 0010 0011 0100 ----------------------------- OR) 1001 0011 0111 0101 -> 9375 a => ア (2) ((初期状態)) 1034 4038 5048 3043 -------------- 1 1234 2 8361 3 5F2A 4 C38B 5 0010 -------------- ======================= ======================= op 10 r 3 v 4 -------------- 1 1234 2 8361 3 C38B <-┐move 4 C38B --┘ 5 0010 -------------- ======================= op 40 r 3 v 8 C38B 1100 0011 1000 1011 <= [Left 8bit] 1000 1011 0000 0000 -> 8B00 -------------- 1 1234 2 8361 3 8B00 4 C38B 5 0010 -------------- ======================= op 50 r 4 v 8 C38B 1100 0011 1000 1000 [Right 8bit] => 0000 0000 1100 0011 -> 00C3 -------------- 1 1234 2 8361 3 8B00 4 00C3 5 0010 -------------- ======================= op 30 r 4 v 3 00C3 0000 0000 1100 0011 8B00 1000 1011 0000 0000 ----------------------------- OR) 1000 1011 1100 0011 -> 8BC3 -------------- 1 1234 2 8361 3 8B00 4 8BC3 5 0010 -------------- ======================= b => カ c => キ (3) ======================= op 10 r 6 v 5 -------------- 5 0010 --┐ 6 0010 <-┘move -------------- ======================= op 40 r 6 v 3 0010 0000 0000 0001 0000 <= [Left 3bit] 0000 0000 1000 0000 -> 0080 -------------- 5 0010 6 0080 -------------- ======================= op 40 r ? v ? -------------- 5 0010 6 0080 -------------- ======================= ((場合分け)) (i) r=5, v=1のとき ======================= op 40 r 5 v 1 0010 0000 0000 0001 0000 <= [Left 1bit] 0000 0000 0010 0000 -> 0020 -------------- 5 0020 6 0080 -------------- ======================= op 20 r 5 v 6 0020 +) 0080 -------- 00A0 -------------- 5 00A0 6 0080 -------------- ======================= d => ア 以上から答えはわかったが一応他のも確認のため. (ii) r=5, v=2のとき ======================= op 40 r 5 v 2 0010 0000 0000 0001 0000 <= [Left 2bit] 0000 0000 0100 0000 -> 0040 -------------- 5 0040 6 0080 -------------- ======================= op 20 r 5 v 6 0040 +) 0080 -------- 00C0 -------------- 5 00C0 6 0080 -------------- ======================= (iii) r=6, v=1のとき ======================= op 40 r 6 v 1 0080 0000 0000 1000 0000 <= [Left 1bit] 0000 0001 0000 0000 -> 0100 -------------- 5 0010 6 0100 -------------- ======================= op 20 r 5 v 6 0010 +) 0100 -------- 0110 -------------- 5 0110 6 0100 -------------- ======================= (vi) r=6, v=2のとき ======================= op 40 r 6 v 1 0080 0000 0000 1000 0000 <= [Left 2bit] 0000 0010 0000 0000 -> 0200 -------------- 5 0010 6 0200 -------------- ======================= op 20 r 5 v 6 0010 +) 0200 -------- 0210 -------------- 5 0210 6 0100 -------------- |