title: In 32 bits Mips architecture, why load word instruction need an immediate offset if the memory has only 32 bits long address?
body: <p>I was reading about 32 bits Mips architecture. As far as I Know Mips memory is indexed using 32 bit locations and each location contain 32 bits value. </p>
  
  <p>In load word instruction its in the following format : <strong>lw $t, offset($s) which means -> $t = memoryIndex($s + offset)</strong>, where $s, $t are registers that contain 32 bits value and offset is a 16 bit immediate value. </p>
  
  <p>If <strong>$s contains 32 bits value</strong> and the <strong>memory can be indexed using 32 bits value</strong>, why do we need an immediate value as an offset ? </p>