Question: For the following MIPS programming exercise, you may use only these instructions: add addi addiu addu and andi div divu lw mfhi mflo mult multu

For the following MIPS programming exercise, you may use only these instructions:

add addi addiu addu and andi div divu lw mfhi mflo mult multu nor or ori sll sra srl sub subu sw xor xori

Write an MIPS program that determines the value of this expression: (x*y)/z

Use x = 160000010 (=0x00186A00), y = 8000010 (=0x00013880), and z = 40000010 (=0x00061A80). Initialize three registers to these values. Since the immediate operand of the ori instruction is only 16 bits wide, use shift instructions to move bits into the correct locations of the registers. Don't use any macros for this program. This problem is somewhat tricky, because the expression (x*y) will have a result that is bigger than 32 bits long. Therefore, choose the order of multiply and divide operations so that the significant bits always remain in the lo result register.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!