CSC314 HW Note: All questions assume we are using the MIPS architecture. Due: Wed, Sep 5 at the beginning of class. Paper must be typed. Can be turned in on the next class period for 50% credit. 1) What are the four design principles described in chapter 3? Describe each and give an example of how each are used. Use a paragraph for each principle. Write in complete sentences. Simplicity favors regularity. An example is keeping the operands for similar instructions like add and sub the same. Smaller is faster. A smaller number of registers is faster because it takes the electronic signal longer to travel farther distances. Good design demand good compromise. The MIPS instruction length is set to 32 bits, so a different instruction format was chosen to handle the different addressing modes. Make the common fast. One of the MIPS’ registers ($zero) is used to store the constant value of zero, which is accessed many times in virtually every program. 2) Convert the following c statements into assembly. Assume that the variables A – D are stored in registers $S0 - $S3 respectively. a. A = B + C; add $s0, $s1, $s2 b. A = (B + C) – (C – D); add $t0, $s1, $s2 sub $t1, $s2, $s3 sub $s0, $t0, $t1 ; Temp register t0 = B + C ; Temp register t1 = C - D ; A = $t0 – $t1 3) Name each of the different addressing modes. Give an example assembly instruction that uses the addressing mode (1 for each mode). Register direct – add $s1, $s2, $s3 Immediate – addi $s1, $s2, 200 Base + index - lw $s1, 200($s2) PC-relative - beq $s1, $s2, 200 Pseudo-direct - j 4000 4) What is the machine code for the following assembly instruction: a. addi $S0, $S1, 100 op Decimal form: 8 Machine form: 001000 rs 17 10001 rt 16 10000 immed 100 0000000001100100 Hint: the back cover of the book gives information about most of the instructions. You must also be able to determine which number represents the registers S0 and S1. 5) Write the following 2-byte integers in binary in both Big Endian format and Little Endian format. a. 23 b. 5 c. 127 Number 23 5 127 Big Endian 00000000 00010111 00000000 00000101 00000000 01111111 Little Endian 00010111 00000000 00000101 00000000 01111111 00000000