# 2018q1 第 5 週測驗題 (下) 考慮某款 MIPS 實作,其 data path 如下: ![](https://i.imgur.com/Y80lxhP.png) 上圖紅色的 `1`, `2`, `3` 對 MIPS 做了對應的修改,請考慮以下狀況,分別解釋對應的程式碼是否能運作。 --- ### 測驗 `1` * Q11: 做了 `1: Stuck at 0 left of cut` 的修改,`sw $s1, 0($s2)` 能否運作? * Q12: 承上,下方程式能否運作? ``` lw $s1, 0($s2) add $s1,$2,$3 ``` ==作答區== Q11 = ? * `(a)` 可 * `(b)` 不可 Q12 = ? * `(a)` 可 * `(b)` 不可 -- ### 測驗 `2` * Q21: 做了 `2: Cut here` 的修改後,以下程式能否運作? ``` add $s1, $s1, $s1 add $s1, $t0, $t1 ``` ==作答區== Q21 = ? * `(a)` 可 * `(b)` 不可 --- ### 測驗 `3` * Q31: 做了 `3: Cut here` 的修改後,以下程式能否運作? (`exit` 為某個副程式) ``` cmp: xor $t1, $s2, $s1 slt $t2, $zero, $t1 sll $t2, 2 add $ra, $ra, $t2 jr $ra entry: addi $s2, $zero, 2 addi $s1, $zero, 2 jal cmp j exit ``` * Q32: 承上,以下程式能否運作? ``` addi $s2, $zero, 2 addi $s1, $zero, 2 beq $s2, $s1, exit ``` ==作答區== Q31 = ? * `(a)` 可 * `(b)` 不可 Q32 = ? * `(a)` 可 * `(b)` 不可 --- :::info 延伸問題: * 解釋並且找出 MIPS 的設計 * 充分解釋在共筆中,並且記錄你的學習歷程 :::