# EECS 2110 assembly language programming

Section 1:

Using the MARS or SPIM simulator develop a program that will evaluate the following expression:

3 * n + n * (n – 1) – 15 where n is stored in a data location and is set to 15. Your program should use the system calls to print the result and to exit the program.

Section 2:

Using the MARS or SPIM simulator develop a program that will implement the following conditional statement.

```{`
If ( n is even) {
n = n / 2;
} else {
n = 3 * n + 1;
}`}```

In this case, n is to be input by the user (assume they input a non-negative value), the conditional is performed, and the resulting n is to be output. Again, use the system calls for input, output, and exiting the program. Hint: There is a remainder pseudoinstruction for the MIPS architecture that you can use to determine if the value is even or odd or you can look at bit 0 to determine if the value is even or odd.

Section 3:

You are to take the conditional from the previous section and build a loop around it to find the Collatz sequence. The structure of this would be:

```{`
while (n > 1) {
If (n is even) {
n = n / 2;
} else {
n = 3 * n + 1;
} cout << n;
}`}```

Section 4:

You are to write a leaf subprogram that will output the following information: