title: Load 32-bit constant to register in MIPS
body: <p>I was confused about this part while I study MIPS.</p>
  
  <p>The textbook written by Professor <a href="http://en.wikipedia.org/wiki/John_L._Hennessy" rel="noreferrer">John L. Hennessy</a> say if we get some <em>big</em> constant to load, we should</p>
  
  <pre><code>lui $s0, upper(big)
  ori $s0, $s0, lower(big)
  </code></pre>
  
  <p>But why don't we just do</p>
  
  <pre><code>addi $s0, $zero, big
  </code></pre>
  
  <p>Since the registers are 32-bit, this is more strightforward, isn't it?</p>