This is my first post here and I'm glad to join this great community and I hope to learn a lot here and help if I can(though i am a very beginner).
I have a theoretical question:
I am trying to add to the single cycle datapath the following command jm IMM($rs), that will, using address in the command, will jump by the value of a word taken from the data memory. (the offset is 16 bits)
So basically the result will be: j MEM[$rs+ sign extend(IMM)].
My question is: Is it actually possible to increase/extend the offset(add/imm) in the given command? If so, what's necessary to implement it?
From what I understand, loading a word from an effective address($rs + offset) is actually quite similar to 'lw', whereas in lw we would put it in the register, but I think that now the we need to put it in the pc.
Would really appreciate learning from your explanations.
Edit: Another question rose when I looked at it. if i want to fill the details in the table for jmp(the bottom one) - Does the values remain the same as for J or do you you calculate using the offset? would really be interested in understanding this.