## Description

0.Introduction

In this lab, you will have the opportunity to implement an integer multiplication algorithm in MIPS assembly. You will also have the opportunity to explore the MIPS datapath by adding functionality to the processor on paper. Additionally, there are a series of questions from the text book that will also cover logic operations and numerical representation. There is a total of 78 marks available for this assignment.

1.Programming Assignment

Simulating Multiplication Algorithms

1. (/30) Implement an assembly program that reads two positive integers and outputs their product. Your program will need to read the input from the user and then display the output as seen below:

Please enter the first number: 256

Please enter the second number: 100

The product is: 25600

In your implementation, you are not allowed to use the MIPS instruction for

multiplications (ie mul or mult are forbidden). Instead, you need to use two 32-bit general registers to mimic a 64-bit product register, and to use the shift and addition operations to implement the version of the multiplication algorithm discussed in class (See page 12-15 in slide deck – Topic 11. Figure 3.5 shows the implementation but will also work). Your code should generate an error message if the multiplication generates an overflow. Include a program comment header that has your name, student number and program name. Name your file excercise1.s.

Code Submission

2. Written Assignment

1. (/8) Exercises (from 5th edition)

a. 3.6 (1 mark)

b. 3.20 (2 marks)

c. 3.21 (1 mark)

d. 3.22 (2 marks)

e. 3.23 (2 mark)

2. (/8) For the following binary fraction, write the IEEE 754 single floating-point representation of the number.

a. (4 marks) 111111.012

b. (4 marks) 100011111000101011.011012

3. (/10) Prove that the NOR gate is universal by showing how to build the AND, OR, and NOT functions using a two-input NOR gate. You are to use only NOR gates to implement the functionality of the other functions. (review B.1, B.2)

4. (/10) We wish to add the instruction subi (subtract immediate) to the single-cycle datapath described in the Chapter 5. Add any necessary datapath and control signals to the singlecycle datapath of Figure 4.17 on page 265 (pdf copy is available on Canvas). Generate a new row entry for the table below for the instruction and update the datapath diagram as required.

Download and inspect the diagram of the datapath associated with the lab from Canvas.

This can be implemented

5. (/12) We wish to add the instruction bne (branch if not equal), to the single-cycle datapath described in the Chapter 5. Add any necessary datapath and control signals to the singlecycle datapath of Figure 4.17 on page 265. In order to accommodate the bne instruction, an additional control line is needed to facilitate the inversion of the zero output of the ALU, so that the PC can be updated in the results of the output are not zero. Generate a new row entry for the table below for the instruction and update the datapath diagram as required.

Download and modify the diagram of the datapath associated with the lab from Canvas and illustrate your answers on the diagram. Embedded you image in your solution file.

Written Submission

## Reviews

There are no reviews yet.