Show the hex representation of MIPS instructions

AI Thread Summary
The discussion focuses on translating MIPS assembly instructions into their hexadecimal representation, specifically the instructions "add $t0, $t0, $zero" and "lw $t2, 16($s3)." The user successfully decomposes the "lw" instruction into its components and arrives at the hexadecimal result of 0x8E6A0010 but seeks clarification on how this conversion is achieved. Participants suggest converting the decimal values obtained from the instruction into binary, then formatting them according to the I-type structure before converting to hexadecimal. Additionally, there is a request for guidance on converting hexadecimal values back to decimal, highlighting the method of using positional notation for base conversions.
shieldcy
Messages
5
Reaction score
0
Hey all

Homework Statement


Here i want to translate them and show the hex representation of these instructions:
1)add $t0, $t0, $zero
2)lw $t2, 16($s3)

Homework Equations


The Attempt at a Solution


eg. 2)
lw | $s3 | $t2 | 16
I-TYPE

then translate the assembly code:
35 | 19 | 10 | 16

The solution is 0x8E6A0010
But i 've no idea how the answer has been reached... Any help?
Thank's a lot
 
Last edited:
Physics news on Phys.org
What is the context of this question? Should you be able to answer it on a test or is it a homework problem meant to familiarize you with your assembler? I would write the code, compile it, and view the answer by stepping through the code.
 
Looks like you have decomposed the assembly instruction correctly:

3510 = instruction
1910 = s
1010 = t
1610 = C

Convert the base-10 values that you obtained into binary. Then group your binary results into the following I-type format:
[iiiiiiss] [sssttttt] [CCCCCCCC] [CCCCCCCC]

(use 6-bits of your instruction result, 5-bits of s, 5 of t, 16 bits of C, zero-padding as needed)

Then convert each 8-bit group to its hexadecimal equivalent.
 
thank you so much! cheers ;)
 
Could you please show me the way to convert hex value 0x8E6A0010 to decimal?
 
Last edited:
shieldcy said:
Could you please show me the way to convert hex value 0x8E6A0010 to decimal?

The nth digit corresponds to how many b^n's there are, starting at n = 0, where b is the base (16 here).

0*16^0 + 1*16^1 + 0*16^2 + ... + 8*16^7
 
Oo yeah... thank's man ;)
 
shieldcy said:
Oo yeah... thank's man ;)

No problem. That method works for converting any integer of any base into base 10 (you can even convert base 10 into base 10 with it).

e.g.
10110 base 2 = 0*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4 = 2 + 4 + 16 = 22
 

Similar threads

Back
Top