```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
```