## Description

Points: : 40 points

PART I (4 POINTS)

Given the following two 32 bit binary numbers:

1000 1101 0010 1000 0000 0000 0000 0000

0010 1000 1000 1000 0000 0000 0000 0001

Find the MIPS assembly instruction represented by each number.

PART II (6 POINTS)

Implement the following C code in MIPS assembly language, assuming that compare is the first

function called:

int compare (int a, int b) {

if (sub(a, b) >= 0)

return 1;

else

return 0;

}

int sub (int a, int b) {

Return a-b;

}

PART III (8 POINTS)

Draw the truth table and the logic circuit for the following function

F = A’• B’ + A•B

(Note, for the logic circuit part, you could draw it by hand)

PART IV (8 POINTS)

Draw the truth table and the logic circuit for the following function

F = (A + B) • (A’+ C’)

(Note, for the logic circuit part, you could draw it by hand)

PART V (6 POINTS)

Use perfect induction to prove x·(x’+y)=x·y

PART VI (8 POINTS)

We discussed the logical equations in minterm form for CarryOut and Sum of the 1-bit full

adder. Can you write down the logical equations for these two output signals in maxterm form?

PART VII (BONUS 5 POINTS)

The following is a C code segment doing bubble sorting on an integer array:

for (i = 0; i < n - 1 ; i ++)
{
for (j = 0; j < n – i -1; j ++)
{
If (array[j] > array[j+1]

{

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

}

Compile this code segment into MIPS assembly language, assume integer variable n is in $s0,

integer variable i is in $s1, integer variable j is in $s2,the base address of integer array array is in

$s3.