Binary data is a series of ones and zeros. Computers read and write in binary. Each 1 or 0 is a called a bit. Eight bits equals 1 byte. Each byte of a computer's memory is assigned a unique address. This unique value can also be called a "pointer" to that area of memory. MIPS Assembly is a programming language that translates the instructions in the Assembly program to binary so that the computer can read and execute the commands. You can also translate binary data to MIPS Assembly instructions or code.

#### Step

Determine what action your MIPS program will execute. For example, "Add $t1, $t2, $t3" is the MIPS code to add the contents of registry 10 to registry 11 and store the result in registry 9. The "destination" is $t1, the "source" is $t2 and the "target" is $t3.

#### Step

Get the binary for the encoding of the "add." The binary encoding for this add to be performed in MIPS is "0000 00ss ssst tttt dddd d000 0010 0000." The pointers involved in the addition are $9, $10, and $11. Therefore, the binary for the five "s" bits would be for register 9, represented in binary as "10001." The five bits for "t" would be for register 10, represented in binary as "10010." And the "d" bits are represented as "10011" for 11.

#### Step

Using this information, if you are giving the binary string "0000 0010 0011 0010 1001 1000 0010 0000", you can translate it back to MIPS using this same method. Based on the binary encoding of the add method in MIPS, you know the first six values are zero and the last 11 are "000 0010 0000."

#### Step

Begin with the seventh digit and count five bits. That value is the "source" registry, "10 001." The second string of five bits is the value of the "target" and the next five, the "destination." If registry 12 were being referenced as the "destination", the binary string would look like this: "0000 0010 0011 0010 1010 0000 0010 0000" where "1010 0" is the value for 12.