 In order to dig deeper and see how our architecture actually works, we're going to need to go look at our instruction formats. This is essentially the machine language, the format of the instructions that the machine can actually read. Our machine language is intrinsically tied to the architecture itself. We can make trade-offs one way or the other. Since we're working with the MIPS architecture, all of our instructions will actually be pretty simple. We have three different types of instructions, and they'll all be 32-bits long, and the upper six bits will always represent the operation code. These six bits are sufficient to tell the processor what operation we want it to do, so it knows how to configure its hardware so that it's processing the information correctly. The remaining 26 bits are used for operands for those commands, and the type of format that we choose is largely dependent on which operands do we have to use for this instruction. So, for example, our add instruction has lots of registers, so it will be a register format instruction. If we have an add immediate instruction, then that has an immediate, so it will be an immediate format. A jump instruction will pretty obviously have a jump format as well. So in this section, we're going to be digging deeper into what these formats look like, how we can convert our assembly language code into a machine code that our processors can actually use, and what all of the fields in our formats mean, so that we'll be able to see how the processor can take those pieces of information out of the instruction and use them to actually control what the machine is doing, where does it get its information from, how is the information processed, and where is it stored.