 The MIPS architecture gives us five different ways of acquiring the data that we're interested in. Each one of these will constitute some form of an addressing mode. The five methods that we have are register addressing, immediate addressing, base addressing, or displacement addressing if you prefer, PC relative addressing, and pseudo-direct addressing. We've seen each of these modes at work in different instructions. Register addressing is pretty obviously used when you have a register. You just need to get your data out of the register. Immediate addressing is any time you put some data into that immediate field. Base or displacement addressing is used for load and store instructions where you've got this base address plus some offset. PC relative addressing is used by the branch instructions because they always jump some number of instructions before or after the current program counter. So the resulting address is relative to the program counter. The jump instruction uses pseudo-direct addressing. It's not quite direct because we had to drop six bits from our address, but otherwise it's capable of directly placing an address into the program counter.