How to Translate Machine Code Instructions to MIPS Assembly?

  • Thread starter Thread starter basketball853
  • Start date Start date
  • Tags Tags
    Binary Mips
AI Thread Summary
The discussion focuses on translating specific machine code instructions into MIPS assembly language. The first instruction, represented as a binary sequence, is identified as an "add" operation, with the user proposing the format as "add $t1, $zero, $t2," but expresses uncertainty about the final part of the instruction. For the second instruction, the user is trying to determine if it also corresponds to an "add," but is confused about the opcode and function relationship. They explore the possibility of the second instruction being a "shift left logical" (SLL) operation, concluding with the proposed format "sll $t1, $zero, $t2." Overall, the user seeks clarification on correctly identifying and formatting MIPS assembly instructions from machine code.
basketball853
Messages
18
Reaction score
0

Homework Statement


Hey everybody! here is my question: Translate the following machine code instructions to MIPS assembly. What is the format of each instruction?
1. 0000 0000 0000 1010 0100 1010 1000 0000
2. 0000 0000 0010 0010 0010 0000 0010 0101

Homework Equations





The Attempt at a Solution


Now when trying to figure out the solution of the first, i looked into my book and found an opcode which was the same as the first 6. Which was add... now i figured out the format:
and got this as a result add $t1, $zero, $t2 is that right? i was unsure because i kinda felt like i left the last part out... i figured out 0000 00 | 00000| 0 1010| 01001|
but i didn't know if i had to do anything with the ending function --- 101 1000 0000 ?

also the second question i am having trouble figuring it out... i know that the opcode and the function match up to encode a certain type but when I am looking for both the opcode and function together in my book/online they only have the opcode? if this is the case then it is another add right?

Your help is appreciated!
 
Physics news on Phys.org
I found 22 separate instructions that start with 000000. Go through those and find the one that matches the bits at the end.
 
okay... so then is that a shift? I am looking at this website http://www.student.cs.uwaterloo.ca/~isg/res/mips/opcodes

of the last of the function am i just matching the last 6? which would be 000000? and the 5 before that would be the shamt (shift) amount?
 
Looks like it to me - SLL (shift left logical) for the first one.
0000 00ss ssst tttt dddd dhhh hh00 0000

hhhhh is the shift amount
ttttt is the register whose value is shifted left
sssss is the register where the shifted result is stored
 
okay cool, so i have:
OP = sll
$t2 = ttttt
$t1 = dddd
$t2 = h

sll $t1, $zero, $t2

would that be correct?
 
Last edited:
Also along with the second one,
i figured it would be: or $a0, $at, $v0

Thank you for everything so far!
 
Back
Top