Difference between "mov eax, [num]" and "mov eax, num"
<p>I am a beginner and writing assembly program to print numbers from 1 to 9 using this code:</p>

<pre><code>section .text    
   global _start                    
_start:                     
   mov ecx,10    
   mov eax, '1'     
l1:    
   mov [num], eax    
   mov eax, 4    
   mov ebx, 1    
   push ecx     
   mov ecx, num            
   mov edx, 1            
   int 0x80     
   mov eax, [num]    
   sub eax, '0'    
   inc eax    
   add eax, '0'    
   pop ecx    
   loop l1      
   mov eax,1             ;system call number (sys_exit)    
   int 0x80              ;call kernel    
section .bss    
num resb 1
</code></pre>

<p>Here we have following three statements:</p>

<ol>
<li>mov [num], eax</li>
<li>mov ecx , num</li>
<li>mov eax, [num]</li>
</ol>

<p>I want to know why we should use <code>mov ecx,num</code> rather than <code>mov ecx,[num]</code></p>