title: Storing a value in a register and when is it address and when pure value
body: <p>Let's take this code:</p>
  
  <pre><code>mov eax, [esp] ; value of what inside esp
  add esp, 4     ; memory or effective address
  </code></pre>
  
  <p>As you can, by default -- without [] -- we work with memory in Assembly. However, why if I want to store 123 in a register, I don't have to use []?</p>
  
  <pre><code>mov eax, 123   ; is 123 a memory address? or pure value?
  </code></pre>
  
  <p>Hence, how is 123 treated here: as a value or address? It's a value, but why not address? Based on the previous example, it must be an address. Or does it depend on a register?</p>