Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help with the following MIPS machine assembly question: Consider the jump

ID: 3585665 • Letter: I

Question

I need help with the following MIPS machine assembly question:

Consider the jump instruction ' j ' destination_address

a) How many bits are allocated for the “destination_address”?

b) What range of addresses that we can reach using the number of bits you specified in Part (a). Before the jump, next instruction to be executed is PC+4.

c) Where do we derive the other bits to form a 32-bit word as a valid program counter (PC)?

d) If we need to jump to an address that is beyond the range specified in Part (b), how would we jump to that destination?

Explanation / Answer

a)
In mips,for 'j' destination_address ; 26 bits are allocated for target address

b)
As we can see ,26 bits are the target offset.So accordingly , we might think we can jump to address
in range of (PC-2^26) to (PC+2^26 - 1).But,this is not the case;as the instructions are 32 bit long,in MIPS 4 byte quantities are stored in word alligned address due to which 00 are appended to the target address.So,we can jump to address in range (PC-2^28) to (PC+2^28 - 4) but the address should be divisible by 4

c)In other to make a proper PC address;it formed by jump instruction in such format:-

4 higher bits from current PC address + 26 bit target address + 2 zeros appended to the right

= 32 bit new PC address

d)
Use two or more jump instructions ; form a consecutive jump chain ;while storing the return address in stack .Use consecutive sequence of push and pop instructions for jumping to farther location then the specified range

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote