There are a handful of different ways to notate assembly code.
Luckily, I stumbled on what appears to be the same one.

https://www.cs.virginia.edu/~evans/cs216/guides/x86.html#memory

Some examples of mov instructions using address computations are:
mov eax, [ebx]  ; Move the 4 bytes in memory at the address contained
in EBX into EAX
mov [var], ebx  ; Move the contents of EBX into the 4 bytes at memory
address var. (Note, var is a 32-bit constant).
mov eax, [esi-4]        ; Move 4 bytes at memory address ESI + (-4) into EAX
mov [esi+eax], cl       ; Move the contents of CL into the byte at address 
ESI+EAX
mov edx, [esi+4*ebx]            ; Move the 4 bytes of data at address
ESI+4*EBX into EDX

So, [var] treats var as the memory address to read from or write to,
and the MOV statements above are not dereferencing the pointer, but
rather adjusting where it is pointing.

Reply via email to