I\'m learning Assembler and getting to the point where I actually have no clue about the difference between [variable] and variable. As the tutoria
A little example using registers and pointers:
mov eax, 10 means: move into the register EAX the value 10. In this case, EAX is used just to store something. What EAX contains doesn't matter at all to the programmer, since it will be erased anyway.
mov [eax], 10 means: move the value 10 into the address stored in EAX register. In this case, the value stored in EAX matters a lot to us, since it's a pointer, which means that we have to go EAX register and see what is contains, then we use this value as the address to access.
Two steps are then needed when you use a pointer:
Go to EAX, and see what value it contains (for example EAX = 0xBABA) ;
Go to the address pointed by EAX (in our case 0xBABA) and write 10 in it.
Of course, pointers are not necessarily used with registers, this little example is just to explain how it works.