# NTUST_1102_計算機組織小考
## Quiz 1
- Assume for arithmetie, load/store, and branch instructions, a processor has CPIs of 2, 8, and 4, respectively. Also assume that a program requires the execution of 2.4E9 arithmetic instructions, 600 million load/store instructions, and 200 million branch instructions, Assume that the processor has a 4 GHz clock frequency.
- a. Find the total execution time for this program.
- b. Find the average CPI for the program.
- c. By how much (%) is the total time reduced if the time for arithmetic instructions is reduced by 20%?
- d. By how much (%) is the time for load/store instructions reduced if the total time is reduced by 30%? Note that the time for other instructions are not changed.
- e. Can the total time be reduced by 20% by reducing only the time for branch instructions?
## Quiz 2
- For the following C statement, what is the corresponding MIPS assembly code?Assume that the variable f is assigned to register $s0. Assume that the baseaddresses of the arrays A and B are in registers $s3 and $s4, respectively. B[12]=f+A[8]-3
- Provide the type, assembly language instruction, and hexadecimal representation of instruction described by the following MIPS fields:
- (a) op = 0, rs = 9, rt =17, rd = 8, shamt = 0, funct = 34
- (b) op = 0x23, rs = 19, rt = 18, const = 20
## Quiz 3
- assume that registers $s0 and $s1 hold the sales 0X64000100 and 0xA0100840, respectively. Please answer the following questions in hexadecimal.
- (a) (25%) What is the value of $t0 for the following assembly code?
and $t0, $s0, $s1
- (b) (25%) What is the value of $t0 for the following assembly code?
srl $t0, $s0, 3
- (50%) Translate the following C code to MIPS assembly code. Assume that the values of a, and i are in registers $s0 and $s1, respectively. Also, assume that register $s2 holds the base address of the array D.

## Quiz 4
- Assume that this segment of MIPS instructions starts at memory location 80000
- (1) (30%) For instructions (a) • (b), show the value (or n.a.) of each field in the following table. (In decimal). (Opcode : bne = 5, jump = 2)
- a. bne $t0, $zero, Exit
- b. j Loop
- (2) (20%) For instructions (a) • (b), translate them into binary machine codes.
- a. bne $t0, $zero, Exit
- b. j Loop
- (50%)Implement the following C code in MIPS assembly.
- 