The code, if you know a little x86, is actually quite easy to understand2. The first instruction moves the value zero (shown as $0x0) into the virtualmemory address of the location of the array; this address is computed by taking the contents of %edi and adding %eax multiplied by four to it. Thus, %edi holds the base address of the array, whereas %eax holds the
array index (i); we multiply by four because the array is an array of integers, each of size four bytes.