title: mips .word function and differences between 2 codes
body: <p>I am quite new to MIPS and trying to understand the difference and the purpose between the two following assembly directives. In the beginning of the program I declare:</p>
  
  <pre><code>.data
     msg:       .word  msg_data
     msg_data:  .asciiz "Hello world"
  </code></pre>
  
  <p>so in the main function both of the following works, but what's the purpose of each one?</p>
  
  <pre><code>la $t0, msg
  lw $a0, 0($t0)
  li $v0, 4
  syscall
  </code></pre>
  
  <p>and the other one is:</p>
  
  <pre><code>la $a0, msg_data
  li $v0, 4
  syscall
  </code></pre>